rails 管理员属于下拉列表
rails admin belongs to dropdown list
我从管理页面管理我的数据库,并想从下拉列表中为 indics 分配一个组。
所以我现在有什么:
印度语 table:
id | int(11) | PRIMARY
name | varchar(255) |
group_id | int(11) |
组table:
id | int(11) | PRIMARY
name | varchar(255) |
indic.rb:
belongs_to :group
rails_admin do
list do
field :id
field :name
field :group_id
end
edit do
field :name
field :group_id
end
end
group.rb:
has_many :indic
rails_admin do
list do
field :id
field :name
end
edit do
field :name
end
end
没有下拉列表(我的意思是从列表中选择组,每个组都来自数据库),我什至不确定它们是否链接,因为我可以输入 group_id存在于 table.
组中
我在其他答案中发现我需要将编辑字段更改为 field :group_id, :belongs_to_association
,但如果这样做,我会在加载页面时遇到错误:
Showing /home/ma/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rails_admin-0.6.5/app/views/rails_admin/main/edit.html.haml where line #2 raised:
undefined method `klass' for #< RailsAdmin::Adapters::ActiveRecord::Property:0x007fd3f99d1e38 >
= rails_admin_form_for @object, url: edit_path(@abstract_model, @object.id), as: @abstract_model.param_key, html: { method: "put", multipart: true, class: "form-horizontal denser", data: { title: @page_name } } do |form|
= form.generate action: :update
有人知道如何解决这个问题吗?同样对于下拉列表,id 列表会很好,但是一个完美的解决方案(我不知道是否可能)是列出那些 group.id.
的名称
终于找到解决方法了,真是笨,link没做是因为关键字末尾的"s"搞错了,必须修改table,不是id列
这是正确的解决方案:
indicator.rb:
belongs_to :group # no "s" for belongs_to
rails_admin
...
edit
field :group # table name, not the name of the reference column !
...
indic.rb:
has_many :indics # need "s" for has_many
有了这个一切都按预期工作,列表默认带有名称,所以我的奖金也完成了:)
我从管理页面管理我的数据库,并想从下拉列表中为 indics 分配一个组。
所以我现在有什么:
印度语 table:
id | int(11) | PRIMARY
name | varchar(255) |
group_id | int(11) |
组table:
id | int(11) | PRIMARY
name | varchar(255) |
indic.rb:
belongs_to :group
rails_admin do
list do
field :id
field :name
field :group_id
end
edit do
field :name
field :group_id
end
end
group.rb:
has_many :indic
rails_admin do
list do
field :id
field :name
end
edit do
field :name
end
end
没有下拉列表(我的意思是从列表中选择组,每个组都来自数据库),我什至不确定它们是否链接,因为我可以输入 group_id存在于 table.
组中我在其他答案中发现我需要将编辑字段更改为 field :group_id, :belongs_to_association
,但如果这样做,我会在加载页面时遇到错误:
Showing /home/ma/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rails_admin-0.6.5/app/views/rails_admin/main/edit.html.haml where line #2 raised:
undefined method `klass' for #< RailsAdmin::Adapters::ActiveRecord::Property:0x007fd3f99d1e38 >
= rails_admin_form_for @object, url: edit_path(@abstract_model, @object.id), as: @abstract_model.param_key, html: { method: "put", multipart: true, class: "form-horizontal denser", data: { title: @page_name } } do |form|
= form.generate action: :update
有人知道如何解决这个问题吗?同样对于下拉列表,id 列表会很好,但是一个完美的解决方案(我不知道是否可能)是列出那些 group.id.
的名称终于找到解决方法了,真是笨,link没做是因为关键字末尾的"s"搞错了,必须修改table,不是id列
这是正确的解决方案:
indicator.rb:
belongs_to :group # no "s" for belongs_to
rails_admin
...
edit
field :group # table name, not the name of the reference column !
...
indic.rb:
has_many :indics # need "s" for has_many
有了这个一切都按预期工作,列表默认带有名称,所以我的奖金也完成了:)