0
我试图在我的产品展示视图中通过连接模型为我的Producttracklisting has_many嵌套表单。什么是正确的方法来做到这一点?我为各种失败的尝试收到各种错误。 的型号如下:为连接模型嵌套表单的正确方法?
class Product < ActiveRecord::Base
has_many :producttracklistings
has_many :tracks, :through => :producttracklistings
end
class Track < ActiveRecord::Base
has_many :producttracklistings
has_many :products, :through => :producttracklistings
end
class Producttracklisting < ActiveRecord::Base
belongs_to :product
belongs_to :track
end
的形式如下:
<%= form_for(@producttracklisting) do |f| %>
<%= f.label :track_id %>
<%= f.text_field :track_id %>
<%= f.label :product_id %>
<%= f.text_field :product_id %>
<%= f.submit %>
<% end %>
我试图把这个转化为产品/节目使用:
<%= render 'producttracklistings/form' %>
与所有上面我得到一个“未定义的方法`model_name'为NilClass:类”
在此先感谢。
非常感谢! – Raoot 2012-03-20 11:16:57
其实,我不确定这就是我所追求的,我想我可能会误用'嵌套'这个词。我所要做的就是将Producttracklisting表单带到产品展示视图上,以便我可以将轨道关联到该产品。我基本上计划运行一个循环来显示每个曲目的'添加到产品'按钮。这完全符合产品轨道/新视图。 – Raoot 2012-03-20 11:41:00
啊...我明白了。好的,以及错误“未定义的方法'model_name'为NilClass:Class”意味着它无法通过form_for调用中的给定变量解析模型名称(ergo @producttracklisting未设置)。因此,要使用相同的表单,您必须在您的控制器中设置此变量,即使用“@producttracklisting = @ product.producttracklistings.build”左右...... – Vapire 2012-03-20 11:45:09