0

我有一个模型

class Rcomment < ActiveRecord::Base
  attr_accessible :comment, :rating

  belongs_to :recipe
  belongs_to :user
end

我正在尝试通过食谱的显示视图添加评论。我用虚拟数据填充了 rcomment 表,它通过以下方式显示良好:

@recipe = Recipe.find(params[:id])
@comments = @recipe.rcomments

所以我尝试了@newcomments = @recipe.rcomments.build(params[:recipe])

但它根本不起作用,出现错误:#<#:0x25ccd10> 的未定义方法 `rcomments_path'

如何让它显示可用的 form_for?

%= form_for(@newcomments) do |f| %>

      <%= f.label :Comments %>
      <%= f.text_field :comment%>

      <%= f.label :ratings %>
      <%= f.text_field :rating %>

      <%= f.submit "Submit Comment", class: "btn btn-large btn-primary" %>
    <% end %>
4

1 回答 1

0

您已经创建了一个用于创建 Rcomment 的表单,但您的 routes.rb 中没有 rcomments 条目。但是,我认为最适合您的问题的是通过食谱创建 rcomments。您可以使用accepts_nested_attributes_for和来做到这一点fields_for

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

所以,像这样——

在您的食谱模型中,添加:

attr_accessible :rcomments_attributes
accepts_nested_attributes_for :rcomments

在你的 recipes#show 视图中:

<%= form_for(@recipe) do |f| %>
  <% f.fields_for :rcomments do |cf| %>
    <%= cf.label "Comments" %>
    <%= cf.text_field :comment%>

    <%= cf.label "Ratings" %>
    <%= cf.text_field :rating %>
  <% end %>

  <%= f.submit "Submit Comment", class: "btn btn-large btn-primary" %>
<% end %>
于 2013-01-14T03:36:27.063 回答