0

我正在使用一个非常简单的论坛软件来帮助我用铁轨上的红宝石弄湿我的脚。我要做的是在用户创建新主题时为帖子内容添加一个文本区域,但是每次我尝试在主题表单中添加它时,都会出现以下错误:

NoMethodError in Topics#new
Showing /Users/Ken/dev/forums/app/views/topics/_form.html.erb where line #11 raised:
undefined method `merge' for :content:Symbol

这是我的新主题表单:

<%= form_for @topic do |f| %>
  <%= f.error_messages %>
  <% if params[:forum] %>
    <%= f.hidden_field :forum_id, :value => params[:forum] %>
  <% end %>
  <p>
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.text_area :post, :content  %>
  </p>
  <p><%= f.submit "Create" %></p>
<% end %>

这是我的主题模型:

class Topic < ActiveRecord::Base
  attr_accessible :name, :last_poster_id, :last_post_at
  belongs_to :forum
  has_many :posts, :dependent => :destroy
end

这是我的帖子模型:

class Post < ActiveRecord::Base
  attr_accessible :content
  belongs_to :topic
end

如何使主题表单中的文本区域正常工作?我是否需要将其添加到主题模型才能访问它,如果需要,我该怎么做?

4

1 回答 1

3

您可以使用 fields_for 助手。请参阅此链接http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for。第一个参数可以是 Post.new,然后您可以在该块内包含主题文本字段。最终结果是一个嵌套表单,您可以在控制器中对其进行解析。

于 2012-07-20T02:13:05.163 回答