2011-01-02 3 views
1

Ich hoffe, Sie können mir helfen.Zugriff auf verschachtelte Ressourcen 'Kommentare' in Schienen 3.0.1

/config/routes.rb:

resources :deadlines do 
    resources :comments 
end 

/model/comment.rb:

class Comment < ActiveRecord::Base 

    belongs_to :post, :class_name => "Post", :foreign_key => "post_id" 

end 

/model/post.rb:

class Post < ActiveRecord::Base 

    has_many :comments 

end 

Wenn ich w Ameise zu besuchen http://localhost:3000/posts/1/comments/new ich:

undefined method `comments_path' for #<#<Class:0x4889d18>:0x4887138> in _form.html 

Ich benutze 'formtastic' und the _form.html.erb sieht wie folgt aus:

<% semantic_form_for [@comment] do |form| %> 
    <% form.inputs do %> 
    <%= form.input :content %> 
    <% end %> 

    <% form.buttons do %> 
    <%= form.commit_button %> 
    <% end %> 
<% end %> 

Antwort

1

Ist Ihr Modell für andere Post oder Deadline? Unter der Annahme, es ist Post:

resources :posts do 
    resources :comments 
end 

Run rake routes im Terminal auf alle Ihre Routen zu sehen. Weitere Informationen:

Syntax für verschachtelte Ressourcen ist:

<% semantic_form_for [@post, @comment] do |form| %> 
+0

Hallo Danke für die Antwort. Es gibt immer noch den Fehler: undefinierte Methode 'comments_path 'für # <# : 0x465b850> Extrahierte Quelle (um Linie # 1): 1: <% semantic_form_for [@post, @comment] do | Formular | %> 2: <% form.inputs do%> 3: <% = form.input: contentvb%> 4: <% end %> – daniel

+0

Versuchen Zusatz '@post = Post.find (params [: post_id])' zu Ihrer Kommentare Controller neue Aktion. – Heikki

+0

Danke Heikki für deine Hilfe;) – daniel