0

ネストされたリソースがどのように機能するか、およびそれらにアクセスする方法について混乱していますここで問題のモデル

event                      eventcomments
id                           id
Title                        body
Content                      event_id
...

ここに私のルートファイル

resources :events do
  resources :eventcomments
  end
end

関係はこちら

Article
  has_many :eventcomments
Comments
  belongs_to event

しかし、イベントの show.html.erb にいるとき、コメントを編集するためのリンクがありません。ここで生成されたレーキ ルート

edit_event_eventcomment GET    /events/:event_id/eventcomments/:id/edit(.:format) eventcomments#edit

そして私のリンク

<h2>Comments</h2>
<div>
<% @comments.each do |comment| %>
    <div>
      <%= image_tag (comment.customer.avatar).url(:thumb) %>
      <%= comment.customer.incomplete_name %> said: 
      <%= comment.description %>
      <div>Posted: <%= time_ago_in_words(comment.created_at) %></div>
      <% if current_customer.isadmin? %>
        <%= link_to 'Edit', edit_event_eventcomment_path(@event) %>
        <%= link_to 'Destroy', '#' %>
      <% end %>
    </div><br />

ここで私が得ているエラー

NoMethodError in Eventcomments#edit

Showing /home/jean/rail/voyxe/app/views/eventcomments/_form.html.erb where line #1 raised:

undefined method `eventcomment_path' for #<#<Class:0xb5e73d84>:0xb5e7c8f8>
Extracted source (around line #1):

1: <%= form_for(@eventcomment) do |f| %>
2:   <% if @eventcomment.errors.any? %>
3:     <div id="error_explanation">
4:       <h2><%= pluralize(@eventcomment.errors.count, "error") %> prohibited this eventcomment from being saved:</h2>
4

2 に答える 2

1

Eventインスタンスをedit_event_eventcomment_pathメソッドに渡すだけで、Eventcommentインスタンスも渡す必要があります。

試してみてくださいedit_event_eventcomment_path(@event, comment)

注:Eventcommentクラスの名前をEventCommentまたは に変更しCommentます。

于 2012-08-20T18:10:33.330 に答える