0

私は非常に単純なフォーラム ソフトウェアを作成して、Ruby on Rails に慣れるために取り組んでいます。私がやろうとしているのは、ユーザーが新しいトピックを作成するときに投稿コンテンツのテキスト領域を追加することですが、トピックフォームに追加しようとするたびに、次のエラーが発生します:

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 に答える