我从管理页面管理我的数据库,并希望从下拉列表中为一个组分配一个组。
所以我现在拥有的是:
标记表:
id | int(11) | PRIMARY
name | varchar(255) |
group_id | int(11) |
组表:
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。 / p>
我在其他答案中发现我需要将编辑字段更改为field :group_id, :belongs_to_association
,但如果我这样做,则会在加载页面时出错:
显示/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其中第2行提出:
对于#<未定义的方法`klass' 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的名称。
答案 0 :(得分:0)
我终于找到了解决方案,这真的是愚蠢的,没有完成链接,因为有些人误解了" s"在关键词的末尾,必须在表上进行编辑,而不是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
这一切都按预期工作,默认情况下列表名称,所以我的奖金也完成了:)