Через некоторое время я пытаюсь вернуться в рельсы, и мне тяжело соединять два простых ресурса, построенных на скаффолдах. Родительский контроллер работает, но ребенок обычно взрывается. Я искал ответ на эту проблему, но не смог.
Для конкретного комментария дочернего элемента, принадлежащего родителю продукта, укажите маршрут "/ products / 1 / comments / 1"
Сообщение об ошибке
Не удалось найти комментарий без идентификатора
app / controllers / comments_controller.rb: 25: в `show '
Параметры:
{ "product_id" => "1",
"ID" => "1"}
Вот соответствующий код из comments_controller "show"
def show
@product = Product.find(params[:product_id])
@comment = @product.comments.find(params[:comment_id])
(Если я изменю: comment_id на просто: id, то новая ошибка:)
Не удалось найти комментарий с идентификатором = 1 [ГДЕ (comments
.product_id = 1)]
{ "product_id" => "1",
"ID" => "1"}
Для индекса комментариев: / products / 1 / comments
Информация об ошибке:
неопределенный метод `model_name 'для Fixnum: Class
Параметры:
{ "Product_id" => "1"}
** Соответствующий код из представления индекса **
18: <td><%= link_to 'Show', [@product, comment.id] %></td>
19: <td><%= link_to 'Edit', edit_product_comment_path(@product, comment) %></td>
20: <td><%= link_to 'Destroy', [@product, comment], :confirm => 'Are you sure?', :method => :delete %></td>
Я провел пару дней бездельничая с этим. Проверяю простые вещи, такие как: id to: (существительное) _id, а также переключаюсь между [@product, comment] и [@product, comment.id] в ссылках моего просмотра.
Будем очень благодарны за любые предложения о том, как заставить это работать. Кажется, все должно быть просто, и я в значительной степени следовал «книге». Проблема в том, что мои тексты по rails (способ Rails и небольшая вступительная книга по ruby с парой глав по rails) в лучшем случае основаны на rails 2, а веб-ресурсы не были полностью обновлены.
Обновление:
* routes.rb *
Party2 :: Application.routes.draw do
resources :comments
resources :products do
resources :comments
end
Ошибки из индекса комментариев
неопределенный метод `model_name 'для Fixnum: Class
Соответствующий код из индекса комментария (ошибка в строке 18)
18: <td><%= link_to 'Show', [@product, comment.id] %></td>
19: <td><%= link_to 'Edit', edit_product_comment_path(@product, comment) %></td>
20: <td><%= link_to 'Destroy', [@product, comment], :confirm => 'Are you sure?', :method => :delete %></td>
Еще одно обновление:
* Модель *
class Product < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :product
end
Еще раз спасибо,
Cameron
(мне кажется очень странным, что это не должно работать, так как я следовал инструкциям.: /)