创建视图以在 Ruby on Rails 应用程序中添加嵌套资源

发布于 2024-12-02 18:27:07 字数 1318 浏览 3 评论 0原文

我正在制作一个具有 3 个资源的 RoR 应用程序,这些资源按以下顺序嵌套:项目 ->饲料 -> XML_Fields。项目 has_many Feeds,Feeds 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

end

我的路由文件如下所示:

resources :projects do
  resources :feeds
end

resources :feeds do
  resources :xml_fields
end

有什么建议可以让这个 NoMethodError 消失吗?谢谢。

I'm making a RoR app that has 3 resources, that are nested in this order: Projects -> Feeds -> XML_Fields. Projects has_many Feeds, Feeds has_many XML_Fields. My problem is that I am getting stuck on adding to the Show Feeds view the ability to add a new XML_Field. My code is below:

<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 %>

Executing this returns a NoMethodError: undefined method 'tag'. Tag is the name of the column in the xml_fields table I created. My xml_fields_controller has this create method:

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

end

And my routing file looks like this:

resources :projects do
  resources :feeds
end

resources :feeds do
  resources :xml_fields
end

Any suggestions to make this NoMethodError go away? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寂寞笑我太脆弱 2024-12-09 18:27:07

模型 XmlField 在数据库中没有标记字段;)

model XmlField doesn't have tag field in database ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文