所以我有一个应用程序,其中用户(Devise)能够查看全部或主要模型的子集(在本例中为Schools),具体取决于用户是在分支机构,地区还是国家级别.
Branch belongs_to Region
School belongs_to Branch
Run Code Online (Sandbox Code Playgroud)
我想要做的是能够以对ActiveAdmin透明的方式连接权限(可能与范围).用户登录ActiveAdmin并显示仅允许他们查看的学校的列表.
所以我想这可能是ActiveAdmin解决方案,也可能是较低级别的解决方案.
任何想法都会非常欢迎:)
使用active_admin,我看到加载具有许多记录的模型的索引的速度很慢.我不确定这与其他报道的缓慢病例有关.
2011-11-10 13:26:14 rails[35848] INFO: Started GET "/admin/articles" for 127.0.0.1 at Thu Nov 10 13:26:14 -0800 2011 2011-11-10 13:26:14 rails[35848] INFO: Processing by Admin::ArticlesController#index as HTML 2011-11-10 13:26:14 rails[35848] DEBUG: AdminUser Load (0.3ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 1 LIMIT 1 2011-11-10 13:26:14 rails[35848] DEBUG: Article Load (381.2ms) SELECT "articles".* FROM "articles" ORDER BY publish_date desc, guid desc, "articles".id desc LIMIT 30 OFFSET 0 2011-11-10 13:26:14 rails[35848] DEBUG: SQL (0.5ms) SELECT COUNT(*) FROM "articles" 2011-11-10 13:26:14 rails[35848] DEBUG: …
我正在使用我的rails应用程序的活动管理员.我有一个客户模型,属于一个部门,也属于一个delivery_time.
在我的管理文件夹中,我有一个用于活动管理员的customer.rb文件.
该文件看起来像这样 -
ActiveAdmin.register Customer
index do |customer|
column :department, :sortable => false
column :delivery_time, :sortable => false
end
end
Run Code Online (Sandbox Code Playgroud)
基本上,我正在尝试自定义活动管理员的客户部分,以显示他们所属部门的名称以及他们所属的交付时间.
部门模型有一个名称和一些其他属性 - 部门的名称显示在我的活动管理屏幕中 - 所有工作都按预期工作.delivery_time模型的两个属性有一个日期,它的类型是date和availability - 这是一个布尔值.
delivery_time显示为 -
#<DeliveryTime:0x00000107984268>
Run Code Online (Sandbox Code Playgroud)
如何显示交货时间模型的日期属性?
我想在jquery-token-input里面使用has_many关系active_admin.
最好的方法是什么,以及如何一般地实现它,以便我可以重用代码以进一步的has_many关系.
我期待着您的建议和指导方针.
大家好我正在使用activeadmin处理这个应用程序.我已经到了一点,我想添加一些基于ajax的函数.我使用teh activeadmin资源设置了基本表单,它生成了一个非常漂亮的表单.
我想在用户输入表单上的详细信息时 - 运行ajax调用,该调用将根据输入的值检索一些html并将其填充到页面上.
我更有可能想要一种向页面添加自定义javascript的方法.什么是最好的方法 - 我面临着返回html的问题,而没有整个activeadmin布局.
我试图允许自己使用主动管理员为每个模型上传5个图像,但我似乎无法弄清楚如何做到这一点.到目前为止,这是我的activeadmin代码:
ActiveAdmin.register Piece do
form :html => { :enctype => "multipart/form-data" } do |f|
f.inputs "Details" do
f.input :name
f.input :description
f.input :cost
f.input :category
f.input :photo, :as => :file, :hint => f.template.image_tag(f.object.photo.url(:medium))
end
f.buttons
end
index do
column :id
column :name
column :cost
column :category
column :inventory_count
column :available_count
column :materials
column :created_at
default_actions
end
end
Run Code Online (Sandbox Code Playgroud)
我如何一次允许5而不是1?
到目前为止,这个组合设置中的大部分内容都运行良好.但是,当我尝试有条件地禁用过滤器时,它们只是始终启用.我的场景是(或多或少)我想给Restaurant所有者(AdminUser带有角色:restaurateur)部分访问:他们只能编辑他们自己的餐厅,我也想隐藏他们的一些字段.这有效.但禁用过滤器却没有.让我详细说明:
# app/admin/restaurants.rb
batch_action :activate, :if => proc { can? :activate, Restaurant } do |list|
#...
end
controller do
def current_ability
@current_ability ||= Ability.new(current_admin_user)
end
end
index do
...
column :city if can? :manage, Restaurant # This works well.
end
filter :city, :if => proc { can? :manage, Restaurant } # This is always there.
Run Code Online (Sandbox Code Playgroud)
的Ability:
# app/models/ability.rb
if user.has_role? :admin
can :manage, :all
elsif user.has_role? :restaurateur
cannot :manage, Restaurant
Run Code Online (Sandbox Code Playgroud)
这是我在Rails控制台中看到的内容:
admin …Run Code Online (Sandbox Code Playgroud) 如何设置响应以便浏览器下载动态生成的json数据,而不显示?
我正在使用Active Admin
member_action :download, :method => :get do
application = Application.find(params[:id])
respond_to do |format|
format.json { render json: application.to_json( include: { categories: { include: { my_cases: { include: [{ questions: { include: :answers } }, :keys ] } } } } ) }
end
end
Run Code Online (Sandbox Code Playgroud) 是否可以获取ActiveAdmin中每个项目的序列号?
所以它看起来像这样:
| Number | Name |
| 1 | Bill |
| 2 | Smith |
Run Code Online (Sandbox Code Playgroud)
我知道这可以实现,each_with_index但不认为有一种方法可以使用ActiveAdmin.
可以添加一些东西controller do吗?
我想将此功能添加到ActiveAdmin的索引中,例如
index do
column "Number" do |a|
# Some way of specifying index number
end
column "Name" do |a|
a.name
end
end
Run Code Online (Sandbox Code Playgroud)
谢谢
我把这些参数列入白名单:
permit_params(%i{identity os current_ip clients site_ids sites domains})
Run Code Online (Sandbox Code Playgroud)
但我在日志中得到以下内容:
{"utf8"=>"?", "_method"=>"patch", "authenticity_token"=>"aU8vwoMbWcMikSQLSGuVo5XTF+sAopRi0+OhgxXYvSKD9UbLaImB3k+uhf03PpWNiwtrZrEv0wVpT9pIcCkyag==", "server"=>{"identity"=>"", "os"=>"UBUNTU 14.04", "current_ip"=>"123.245.23.24", "site_ids"=>["", "1"]}, "commit"=>"Update Server", "controller"=>"admin/servers", "action"=>"update", "id"=>"1"}
Server Load (0.2ms) SELECT "servers".* FROM "servers" WHERE "servers"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
Unpermitted parameters: :site_ids
Run Code Online (Sandbox Code Playgroud)
我的表格如下:
form do |f|
f.inputs "Server Details" do
f.input :identity
f.input :os, label: 'OS'
f.input :current_ip, as: :string
f.input :sites, as: :select, collection: Site.all
end
f.actions
end
Run Code Online (Sandbox Code Playgroud)
尽管被列入白名单,为什么不允许使用params?