0

所以我有专辑和专辑标签。一张专辑可以有很多专辑标签,所以我修改了模型:

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 插入到相册视图的 _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

进入我的专辑模型。没有成功

4

1 回答 1

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|
于 2012-10-31T14:19:11.663 回答