我正在制作一个具有 3 个资源的 RoR 应用程序,这些资源按以下顺序嵌套:项目 -> 提要 -> XML_Fields。项目 has_many 提要,提要 has_many XML_Fields。我的问题是我在向 Show Feeds 视图添加添加新 XML_Field 的能力时遇到了困难。我的代码如下:
<h2>Add an XML field:</h2>
<%= form_for ([@feed, @feed.xml_fields.build]) do |f| %>
<div class="field">
<%= f.text_area :tag %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
执行此操作会返回一个NoMethodError: undefined method 'tag'
. Tag 是我创建的 xml_fields 表中列的名称。我的 xml_fields_controller 有这个创建方法:
def create
@xml_field = Feed.find(params[:feed_id]).xml_fields.build(params[:xml_field])
respond_to do |format|
if @xml_field.save
format.html { redirect_to( :back, :notice => 'XML Field was successfully created.') }
format.xml { render :xml => @xml_field, :status => :created, :location => [@xml_field.feed, @xml_field] }
else
format.html { render :action => "new" }
format.xml { render :xml => @xml_field.errors, :status => :unprocessable_entity }
end
end
结尾
我的路由文件如下所示:
resources :projects do
resources :feeds
end
resources :feeds do
resources :xml_fields
end
有什么建议可以让这个 NoMethodError 消失吗?谢谢。