0

このアプリにメッセージの返信を追加しようとしています:https ://github.com/railstutorial/sample_app_2nd_ed

ただし、エラーが発生し続けます。以下のこの部分の未定義のメソッド `content'(17行目)。

<li>
  <span class="content"><%= micropost.content %></span>

  <span class="timestamp">
    Posted <%= time_ago_in_words(micropost.created_at) %> ago.
  </span>
  <% if current_user?(micropost.user) %>
    <%= link_to "delete", micropost, method:  :delete,
                                     confirm: "You sure?",
                                     title:   micropost.content %>
  <% end %>

  <span>
  <h>Comments</h>
  <% @micropost.comments.each do |c| %>
    <p>
      <%=h c.content %>
    </p>
  <% end %>
  </span>

  <span>
  <%= form_for(@comment) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field">
    <%= f.text_area :content, :cols => "20", :rows => "2", placeholder: "Compose new comment..." %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
  <% end %>
  </span>
</li>

たとえば、2行目では問題がなく、マイクロポストコントローラーのどこか他の場所でメソッドの内容を明示的に定義していないため、これは意味がありません。コンテンツをどこで定義し、どのように定義すればよいですか?

これが私のコメントモデルのコードです

class Comment < ActiveRecord::Base
  attr_accessible :content
  belongs_to :micropost

  validates :content, presence: true, length: { maximum: 140 }

  validates :micropost_id, presence: true

  default_scope order: 'comments.created_at DESC'
end
4

1 に答える 1

0

Commentを呼び出そうとしてcontentいるので、Comment モデルにはcontentインスタンス メソッドが必要です。

@micropost2 行目では、別のクラスのインスタンスのように見えるメソッド on を呼び出しています。

于 2012-05-17T21:05:55.417 に答える