Error: ActiveRecord::RecordNotFound Couldn't find Option with 'id'=
Это происходит, когда я добавляю ссылку на опции show.html.erb
, чтобы получить все регистрационные данные для этой опции. Для того, чтобы получить идентификатор события и опции идентификатор, я добавляю следующее методу шоу в OptionsController:Rails 4 Вложенные ресурсы Ошибка с 3-мя моделями
@event = Event.find(params[:event_id])
@option = Option.find(params[:option_id])
Это ссылка, я добавляю в файл show.html.erb
:
link_to "Registrations", event_option_registrations_path(@option)
Это как мои 3 модели выглядят: Event, опционные и регистрации
event.rb
:
class Event < ActiveRecord::Base
has_many :options, dependent: :destroy
end
option.rb
:
class Option < ActiveRecord::Base
belongs_to :event
has_many :registrations
end
routes.rb
:
resources :events do
resources :options do
resources :registrations
end
Маршрут для регистраций:
event_option_registrations_path /events/:event_id/options/:option_id/registrations(.:format)
регистрации # индекс
Когда происходит ошибка? Откуда ваши «параметры»? Из того, что вы опубликовали, похоже, что «params [: option_id]» - это значение nil во время выполнения. Загружайте журналы веб-сервера, чтобы мы могли видеть, что происходит до и после ошибки. – Beartech
благодарит за ответ. ** перед добавлением: @option = Option.find (params [: option_id]) ** Начато GET "/ events/1/options/25" for :: 1 at 2015-11-20 21:55:03 - 0500 Обработка по OptionsController # показать как HTML Параметры: {"event_id" => "1", "id" => "25"} Option Load (0.0ms) SELECT "options". * FROM "options" WHERE "options". "Id" =? LIMIT 1 [["id", 25]] Загрузка события (0.0ms) ВЫБРАТЬ "события". * FROM "events" WHERE "events". "Id" =? LIMIT 1 [["id", 1]] Загрузка события (0.0ms) ВЫБРАТЬ "события". * FROM "events" WHERE "events". "Id" =? LIMIT 1 [["id", 1]] – Asan
Представленные опции/show.html.erb в макетах/приложении (1.0ms) Завершено 200 OK в 74ms (Просмотров: 73.0ms | ActiveRecord: 0.0ms) – Asan