Ruby on rails 活动管理表单仅显示“”
我正在积极管理HABTM关系。我有两个模型:magazine.rb和keyword.rb,它们都通过联接表magazies\u keyword.rb进行关联。我想能够选择在活动管理关键字从杂志资源页 AA资源文件magages.rb如下所示:Ruby on rails 活动管理表单仅显示“”,ruby-on-rails,ruby-on-rails-3,activerecord,rails-activerecord,activeadmin,Ruby On Rails,Ruby On Rails 3,Activerecord,Rails Activerecord,Activeadmin,我正在积极管理HABTM关系。我有两个模型:magazine.rb和keyword.rb,它们都通过联接表magazies\u keyword.rb进行关联。我想能够选择在活动管理关键字从杂志资源页 AA资源文件magages.rb如下所示: ActiveAdmin.register Magazine do menu :priority => 1 form do |f| f.semantic_errors *f.object.errors.keys f.inputs "M
ActiveAdmin.register Magazine do
menu :priority => 1
form do |f|
f.semantic_errors *f.object.errors.keys
f.inputs "Magazine Details" do
f.input :title_id, :label => 'Title', :as => :select, :collection => Keyword.all.map{ |u| ["#{u.word.capitalize}", u.id] }
f.input :keywords, :as => :check_boxes, :input_html => { :multiple => true } do
f.has_many :keywords do |s|
s.input :keyword, :collection => Keyword.all.map { |kw| ["#{kw.word.capitalize}", kw.id] }
end
end
end
f.actions
end
show do
panel "Magazine Details" do
attributes_table_for magazine do
row "Keywords", :keyword do |m|
m.keywords.map { |d| d.word }.join(", ").html_safe
end
end
end
active_admin_comments
end
表演部分起作用了。通过此设置,我还可以输入一个新的杂志,并写入联接表,但表单不显示关键字,只显示关键字。哪个是什么?该字段的活动记录地址
如何让表单为每条记录显示正确的数据条目
当我使用:
f.input :keywords, :as => :check_boxes, :input_html => { :multiple => true }, :collection => Keyword.all.map { |kw| ["#{kw.word.capitalize}", kw.id] }
将显示关键字,但联接表似乎不起作用,因为我无法读取、编辑或写入新条目或现有条目
我怎样才能让这个部件工作
更新
当我使用创建新的杂志条目时
f、 输入:关键字,:as=>:复选框
以及:
f.input :keywords, :as => :check_boxes, :input_html => { :multiple => true } do
f.has_many :keywords do |s|
s.input :keyword, :collection => Keyword.all.map { |kw| ["#{kw.word.capitalize}", kw.id] }
end
end
我得到:
Started GET "/admin/magazines/new" for 127.0.0.1 at Sat Mar 03 14:21:41 +0100 2018
Processing by Admin::MagazinesController#new as HTML
[1m[36mAdminUser Load (0.4ms)[0m [1mSELECT 'admin_users'.* FROM 'admin_users' WHERE 'admin_users'.'id' = 1 LIMIT 1[0m
[1m[35mKeyword Load (1.4ms)[0m SELECT 'keywords'.* FROM 'keywords'
[1m[36mCACHE (0.0ms)[0m [1mSELECT 'keywords'.* FROM 'keywords' [0m
Rendered /Users/xxxxx/.rvm/gems/xxxxx/gems/activeadmin-0.6.0/app/views/active_admin/resource/new.html.arb (300.6ms)
Completed 200 OK in 390ms (Views: 302.4ms | ActiveRecord: 1.8ms)
Started POST "/admin/magazines" for 127.0.0.1 at Sat Mar 03 14:21:54 +0100 2018
Processing by Admin::MagazinesController#create as HTML
Parameters: {"authenticity_token"=>"zzzzz=", "commit"=>"Create Magazine", "utf8"=>"✓", "magazine"=>{"number"=>"11", "keyword_ids"=>["", "1", "2"], "description"=>"4", "colour"=>"5", "title_id"=>"2", "cover_alt"=>"6", "short"=>"3"}}
[1m[35mAdminUser Load (0.4ms)[0m SELECT 'admin_users'.* FROM 'admin_users' WHERE 'admin_users'.'id' = 1 LIMIT 1
[1m[36mKeyword Load (0.3ms)[0m [1mSELECT 'keywords'.* FROM 'keywords' WHERE 'keywords'.'id' IN (1, 2)[0m
[1m[35mSQL (0.1ms)[0m BEGIN
[1m[36mSQL (0.9ms)[0m [1mINSERT INTO 'magazines' ('colour', 'cover_alt', 'created_at', 'description', 'number', 'short', 'title_id', 'updated_at') VALUES (?, ?, ?, ?, ?, ?, ?, ?)[0m [["colour", "5"], ["cover_alt", "6"], ["created_at", Sat, 03 Mar 2018 13:21:54 UTC +00:00], ["description", "4"], ["number", 11], ["short", "3"], ["title_id", 2], ["updated_at", Sat, 03 Mar 2018 13:21:54 UTC +00:00]]
[1m[35m (0.3ms)[0m INSERT INTO 'magazines_keywords' ('magazine_id', 'keyword_id') VALUES (14, 1)
[1m[36m (0.2ms)[0m [1mINSERT INTO 'magazines_keywords' ('magazine_id', 'keyword_id') VALUES (14, 2)[0m
[1m[35m (12.1ms)[0m COMMIT
Redirected to http://localhost:3000/admin/magazines/14
Completed 302 Found in 114ms (ActiveRecord: 0.0ms)
我认为您需要使用:
f.input :keywords, as: :check_boxes, member_label: :word
或
尝试只保留f.input:keywords,:as=>:复选框,并删除其余包含嵌套输入的复选框谢谢您的输入。我试过了,但它输出了相同的奇怪字符串活动记录键:value???。我最终得到了一个嵌套输入,因为我认为我必须用keyword.word之类的东西来获取关键字。我被困在这里了。你在magazies.rb的许可证部分有什么?当您使用f.input:keywords,:as=>:check_box,:input\u html=>{:multiple=>true},:collection=>Keyword.all.map{{kw |[{kw.word.capitalize},kw.id]}并尝试向杂志添加一些关键字时,服务器日志中是否有一些不允许的参数?f.input:keywords,as::check_box,member\u label::wordf.input:keywords,as::复选框,成员标签:Proc.new{kw{kw.word.capitalize}
f.input :keywords, as: :check_boxes, member_label: :word
f.input :keywords, as: :check_boxes, member_label: Proc.new { |kw| kw.word.capitalize }