Помогите конвертировать вложенный маршрут в Rails 3 - PullRequest
1 голос
/ 23 августа 2010

У меня есть форма комментария (в comments / _form.html.erb), которую я использую в других своих контроллерах (сообщениях и тегах).

<% form_for([@post, Comment.new], :html => { :multipart => true }) do |f| %>

    <%= f.text_field :commenter %>

    <%= f.text_field :email %>

    <%= f.text_area :body %>

    <%= f.submit 'submit' %>

<% end %>

В моей модели комментариев у меня есть:

belongs_to  :post

В версии моего приложения rails 2 мой routes.rb включал map.resources :posts, :has_many => :comments, который работал нормально, но та же конфигурация в Rails 3 выдает неопределенную ошибку метода:

undefined method `post_comments_path' for #<#<Class:0xf94920>:0xf8d540>

Я думал, что Rails2.x маршруты просто обесценились, пока не выйдет 3.1.Как мне конвертировать это в Rails 3?Спасибо за чтение моего вопроса.

1 Ответ

4 голосов
/ 23 августа 2010

В Rails 3 вы можете определить вложенные маршруты следующим образом:

resources :posts do
  resources :comments
end

Я думаю, что вам также может понадобиться определить form_for немного по-другому:

<%= form_for [:post, @comment] do |f| %>

Надеюсь, это поможет! Проверьте http://rizwanreza.com/2009/12/20/revamped-routes-in-rails-3 для получения дополнительной информации о маршрутизации в Rails 3.

...