Ruby on rails 为嵌套对象创建隐藏字段时出错

Ruby on rails 为嵌套对象创建隐藏字段时出错,ruby-on-rails,Ruby On Rails,我使用的是rails 2.3.5。我有一个博客模型和博客有很多评论。这是我的博客控制器显示操作 def show @blog = Blog.find(params[:id]) @comment = Comment.new end 我会显示博客,最后会有一个创建评论的选项。所以我把它添加到blogs/show.html.erb中 <% form_remote_for @comment do |f| %> <%= f.label :content %>

我使用的是rails 2.3.5。我有一个博客模型和博客有很多评论。这是我的博客控制器显示操作

def show
  @blog = Blog.find(params[:id])
  @comment = Comment.new
end
我会显示博客,最后会有一个创建评论的选项。所以我把它添加到blogs/show.html.erb中

<% form_remote_for  @comment do |f| %>
      <%= f.label :content %>
      <%= f.text_area :content, :rows => 6 %>
      <%= f.hidden_field :blog => @blog %>
      <%= f.submit %>
  <% end %>    

6 %>
@博客%>
但是当我运行这个程序时,我得到了以下错误 博客中的命名错误#显示

显示app/views/blogs/show.html.erb,其中第270行出现:

undefined method `blog#<Blog:0xb677d8d0>' for #<Comment:0xb67762b0>
未定义的方法“blog#”#

提取的源代码(在第270行附近):

注释
模型应该有
属于:blog

博客
模型应该有
有很多评论

在控制器中初始化注释,如下所示:

@blog.comments.new
视图应如下所示:

<%= f.hidden_field :blog_id %>

评论
模型应该有
属于:blog

博客
模型应该有
有很多评论

在控制器中初始化注释,如下所示:

@blog.comments.new
视图应如下所示:

<%= f.hidden_field :blog_id %>

您必须隐藏博客的id,而不是博客对象

<%= f.hidden_field :blog_id%>

您必须隐藏博客的id,而不是博客对象

<%= f.hidden_field :blog_id%>

问题在于您的
f.hidden\u字段
行。第一个参数应该是字段中所需的
@comment
的属性名,但在代码中它是散列


我建议调整您的
show
操作以设置
@comment=@blog.comments.build
,并将视图更改为
f.hidden\u字段:blog\u id

问题在于您的
f.hidden\u字段
行。第一个参数应该是字段中所需的
@comment
的属性名,但在代码中它是散列


我建议调整你的
show
操作以设置
@comment=@blog.comments.build
,并将视图改为
f.hidden\u字段:blog\u id

为“@comment=@blog.comments.build”为“@comment”,仅为“@comment=@blog.comments.build”