Я пытаюсь написать маршрут, который фиксирует отношения один-ко-многим между постами и комментариями в вашем среднем блоге
То, что у меня сейчас есть, это post.rb
class Post < ActiveRecord::Base
has_many :comments
end
, за которым следует comment.rb (среди всех других настроек БД, включая post_id: integer для комментария)
class Comment < ActiveRecord::Base
belongs_to :post
end
В маршрутах я пытаюсь использовать
resources :posts do
resources :comments
end
но мне не повезло - какая-нибудь помощь от эксперта по рельсам 3?
Редактировать
Когда я нажимаю на "show" действие моего пост-контроллера через этот URL-адрес
http://localhost:3000/posts/3
Я получаю ошибку маршрутизации
No route matches {:controller=>"comments", :action=>"create"}
Это из-за моей формы комментариев в шаблоне шоу моего поста
<% form_for Comment.new do |f| %>
<p>
<%= f.label :body, "new comment" %><br>
<%= f.text_area :body %>
</p>
<p><%= f.submit "add comment" %></p>
<% end %>
Нужно ли мне изменять форму, потому что до этого изменения маршрутов, когда я делал простой исходный код, действие указывало на / comments / {id}
Редактировать # 2
Я заметил, что после того, как я изменил свои маршруты, чтобы выглядеть так
resources :comments
resources :posts
resources :posts do
resources :comments
end
У меня все работает, за исключением того, что мой созданный комментарий не знает post_id (в MySQL комментарий сохраняется, но он не знает сообщение, которому он принадлежит)
Может быть, это моя форма?