我想将 activeadmin 过滤器与 hstore 一起使用:
在模型中,我有房间的柱设施。
我想做这样的事情:
过滤器 :amenities, :as => :select, :collection => proc {Room.all.map{|r| r.便利设施} }
我们正在使用 Active Admin 和 Rails 构建一个应用程序。它有一系列具有相同数据结构的模型。
我们现在想要一个视图,将这些模型中的所有数据一起显示在一个表中。
分成许多模型的原因是它们都来自不同的来源。
所以作为管理员我想一起查看所有数据。
该数据是只读的,因此无需写入。
使用下面的代码,我能够将所有数据与自定义页面一起呈现,但这并没有利用 ActiveAdmin 内置的表呈现,因此毫无意义。请参阅下面的屏幕截图和使用的代码。

ActiveAdmin.register_page "Top Sellers" do
content do
table_for @items = Dingoat.all + Dingobe.all do
column "Product Name", :ProductName
column "Start Date", :StartDate
column "End Date", :EndDate
end
end
end
Run Code Online (Sandbox Code Playgroud) 目前我有一个 ActiveAdmin 页面,它从 CSV 文件获取数据以填充数据库表(用户)。该表有一个唯一标识符,该标识符不是关系中使用的ID(供用户查看的用户友好代码)。该页面通过“active_admin_import”执行此操作
现在,我想要同样的东西填充另一个表(user_paths),问题是,该表使用“users”表中的外键,所以我希望 CSV 文件包含“users”表中的这个唯一标识符。
有什么解决办法吗?
当我单击rails_admin 导航中的国家/地区时,我得到
NameError in RailsAdmin::Main#index
uninitialized constant Country::Person
raise NameError.new("uninitialized constant #{candidates.first}", candidates.first)
Run Code Online (Sandbox Code Playgroud)
我使用的是用户模型而不是人员。我想我需要以某种方式配置它。但到哪里去做呢?
这是我的 Rails 管理初始化程序
## == Devise ==
config.authenticate_with do
warden.authenticate! scope: :user
end
config.current_user_method(&:current_user)
## == Cancan ==
config.authorize_with :cancan
### More at https://github.com/sferik/rails_admin/wiki/Base-configuration
config.model "User" do
edit do
field :admin
field :username
field :email
field :password
end
end
config.actions do
dashboard # mandatory
index # mandatory
new
export
bulk_delete
show
edit
delete
show_in_app
## With an audit adapter, you can add:
# history_index
# history_show …Run Code Online (Sandbox Code Playgroud) 由于多种技术原因,我不得不将我一直使用的 ActiveAdmin 编辑表单更改为 ERB 部分。
该表格非常庞大,我必须将其分成多个选项卡。尝试通过<% tabs do %>在 ERB 部分中使用来添加选项卡时,输出中会出现以下错误rails server:
Completed 500 Internal Server Error in 209ms
ActionView::Template::Error (undefined method `tabs' for #<#<Class:0x007fb1827cdbf8>:0x007fb181b16d60>):
1: <%= semantic_form_for [:admin, @consignment], builder: ActiveAdmin::FormBuilder, html: { enctype: 'multipart/form-data' } do |f| %>
2: <% f.semantic_errors *f.object.errors.keys %>
3:
4: <% tabs do %>
5:
6: <% tab 'Foo' do %>
7:
app/views/admin/consignments/_form.erb:4:in `block in _app_views_admin_consignments__form_erb__783297827544755550_70200180247600'
app/views/admin/consignments/_form.erb:1:in `_app_views_admin_consignments__form_erb__783297827544755550_70200180247600'
Run Code Online (Sandbox Code Playgroud)
我知道我可能必须在某个地方包含一个帮助程序才能呈现选项卡,但我不确定要使用哪个帮助程序以及在哪里包含它。
在 Rails 中(特别是在 ActiveAdmin 中),带有作为第二个参数传递的数组的 link_to 帮助器会做什么?这方面的文档在哪里?
我有这个代码:
index pagination_total: false do
column :name, :sortable => :first_name do |user|
link_to user.full_name, [:admin, user]
end
那有什么作用?[:admin, user] 在这里做什么?
这里一件令人困惑的事情是我的 ActiveAdmin 面板定义为:
ActiveAdmin.register Promotions::User, as: "User" do
因此,链接实际上是在模块前面加上的,如下所示:
admin_promotions_users_path这是我不想要的。这会导致错误,因为它as:会覆盖 ActiveAdmin path_helper。我想要的是:
admin_users_path。
简而言之,我认为这里的错误是,link_helper当传递带有符号对象的数组时,我不知道 a 扩展为什么。
我想在 ActiveAdmin 中的用户模型上添加一个名为approve的member_action。我查看了文档,但一切都不一样,我对如何做到这一点感到很困惑。到目前为止,我只显示批准链接(在“查看”、“编辑”和“删除”旁边)。
管理员/用户.rb:
member_action :approve, method: :post do
user = User.find params[:id]
user.approve!
redirect_to admin_user_path(user), notice: "Approved!"
end
Run Code Online (Sandbox Code Playgroud)
并显示链接:
actions defaults: true do |user|
link_to 'Approve',approve_admin_user_path(user)
end
Run Code Online (Sandbox Code Playgroud)
模型/用户.rb:
def approve!
update(bio_validee: true)
end
Run Code Online (Sandbox Code Playgroud)
当我单击链接时,出现路由错误:
No route matches [GET] "/admin/users/21/approve"
Run Code Online (Sandbox Code Playgroud)
这rake routes是做什么的(对于管理员/用户路由):
approve_admin_user POST /admin/users/:id/approve(.:format) admin/users#approve
batch_action_admin_users POST /admin/users/batch_action(.:format) admin/users#batch_action
admin_users GET /admin/users(.:format) admin/users#index
POST /admin/users(.:format) admin/users#create
new_admin_user GET /admin/users/new(.:format) admin/users#new
edit_admin_user GET /admin/users/:id/edit(.:format) admin/users#edit
admin_user GET /admin/users/:id(.:format) admin/users#show
PATCH /admin/users/:id(.:format) admin/users#update
PUT /admin/users/:id(.:format) admin/users#update
DELETE /admin/users/:id(.:format) admin/users#destroy …Run Code Online (Sandbox Code Playgroud) 我想删除活动管理显示页面上任何记录的编辑按钮,月份和年份等于当前月份和年份的记录除外。
我能够在索引中做到这一点
if (es.month == Date.today.strftime("%m").to_i) && (es.year == Date.today.strftime("%Y").to_i )
span link_to 'Edit', "/executive_summaries/#{es.id}/edit"
end
Run Code Online (Sandbox Code Playgroud)
我的 Executive_summaryies.rb 包括
ActiveAdmin.register Executive::Summary do
menu :parent => 'Reports'
config.batch_actions = true
. . .
action_item :only => :show do
link_to_function("#{ActiveAdmin::Iconic.icon(:document_stroke)} Print Executive Summary".html_safe, "javascript:print()")
end
. . .
controller do
. . .
def edit
@run_js_functions = %w(ExecutiveSummaries.init)
end
def show
@run_js_functions = %w(ExecutiveSummaries.accordion)
end
. . .
end
Run Code Online (Sandbox Code Playgroud)
目前代码的方式是,编辑按钮显示在标题栏中(我相信默认情况下),旁边有一个打印按钮。(来自上面显示的代码)。
如何在显示/查看页面上显示当前月份和年份记录的编辑按钮?
谁能解释一下如何自定义 Activeadmin 控制器的新操作?我有这样的课程:Room、Option和RoomOption。它们是has_many through关联的,我希望能够根据数据库中的现有内容构建RoomOptions每个新内容。RoomOptions
我有这样的代码:
controller do
def new
super
Option.find_each { |option| resource.room_options.build(option: option)}
end
end
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为没有创建选项。
我有一个带有 json 字段的模型,我想美化该字段的输出。我该怎么做?
show do
attributes_table do
row :source_json do |model|
model.source_json
end
end
end
Run Code Online (Sandbox Code Playgroud)
当前字段如下所示:
{"date"=>"2018-12-17", "value"=>"sample"}
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
{
"date"=>"2018-12-17",
"value"=>"sample"
}
Run Code Online (Sandbox Code Playgroud)