0
我被卡住了,获取form_for以使用具有多对多关系的命名空间资源,我需要在表单中引用它。form_for具有多对多关系的名称空间资源
关系是延伸影响许多身体部位和身体部位可以有很多延伸。
这里的资源:
namespace :admin do
resources :stretches, only: [:new, :create, :edit, :update, :destroy]
resources :body_areas, only: [:new, :create]
end
这里的的form_for:
<%= form_for [:admin, @stretch, @body_area] do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :body_area_id %>
<%= f.collection_select :body_area_id, BodyArea.all, :id, :name, prompt: 'Select a Body Area' %>
<%= f.submit %>
<% end %>
而且我的控制器:
def new
@stretch = Stretch.new
@body_area = BodyArea.all
end
我得到的错误是:
ActionView::Template::Error:
undefined method `to_key' for #<ActiveRecord::Relation [#<BodyArea id: 1, name: "Legs 1">]>
有没有人有任何建议可以帮助我?在此先感谢您的时间!
嗯......我不想尝试新的BodyArea。我想引用身体区域的列表来选择这个拉伸属于哪一个。当我不在form_for的参数中包含@body_area时,我的表单在下拉菜单中不知道我在说什么。 –
@KristenSqueeMueller它知道,因为''body_rea.all'为'collection_select'。你可以删除'@body_area = BodyArea.new',因为它没用 – Pavan