所以我有专辑和album_tags。一张专辑可以有很多album_tags,所以我修改了模型:
class Album < ActiveRecord::Base
...
has_many :album_tags
end
class AlbumTag < ActiveRecord::Base
attr_accessible :album_id, :album_tag_id, :tag_name
belongs_to :album
end
我还添加了:tag_name到专辑的attr_accessible。 但现在我需要将这些tag_name插入到albums_views
的_form.htl.erb中我使用嵌套的资源进行了好几次,但这一次有所不同,我的想法没有成功。 在我的新方法中,我添加了
@album_tag = AlbumTag.new
在我的_form.html.erb中,它看起来像这样:
<%= f.label :tag_name %><br />
<%= f.text_field :tag_name %>
日志说:
ActionView::Template::Error (undefined method `tag_name' for #<Album:0xe7331c50>):
所以我尝试在上面添加album_tag对象:
<%= form_for([@user, @album, @album_tag]) do |f| %>
然后我得到:
ActionView::Template::Error (undefined method `user_album_album_tags_path' for #<#<Class:0xe755de48>:0xe755b4cc>):
所以我的玩法是插入一个带有tag1,tag2,tag3等值的form_field。 之后我想把它们拿起来,并将它们插入每个中。 但首先,我必须毫无错误地显示该字段。 我该怎么做?
编辑:我刚刚尝试添加
accepts_nested_attributes_for :album_tags
进入我的albums_model。没有成功
答案 0 :(得分:1)
这个rails cast很好地覆盖了嵌套表单。
http://railscasts.com/episodes/196-nested-model-form-part-1
和第2部分:
http://railscasts.com/episodes/197-nested-model-form-part-2
从我所看到的,你应该使用。
f.fields_for :album_tags do |builder|