Я создал метод под названием verify в контроллере (events_controller.rb), и я хочу разрешить этой странице (verify.html.erb) принять объект (@event), и показать параметры этих объектов. Я создаю шоу-страницу по существу, но мне нужно создать специальную логику на этой странице, которую я не хочу создавать на странице показа. Я создал маршрут, но я все еще получаю сообщение об ошибке, когда я говорю ему, чтобы найти событие по параметрам [: id]. Фактический url, который он собирается, будет /verify.(event: id), и я считаю, что он должен быть маршрутизирован на события/verify/(event: id).Разрешить метод принимать: id param
Моя ошибка
Couldn't find Event without an ID.
routes.rb
get "verify", to: 'events#verify'
resources :events
events_controller.rb
def verify
@event = Event.find(params[:id])
respond_to do |format|
format.html # verify.html.erb
format.json { render json: @event }
end
end
Благодаря Stack!
Это работало отлично! Не могли бы вы объяснить, что здесь происходит? Я прочитал руководство по направляющим для маршрутизации, но это никому не помогло. Еще раз спасибо! – Devan
хорошо .. ничего волшебного, говоря 'get" verify /: id "означает, что после'/verify/'будет параметром, который вы отправляете, в вашем случае id ': id'. – rmagnum2002
также вы можете назвать свой параметр так, как хотите, например: 'get" verify /: my_fancy_id "и этот параметр будет отправлен (': my_fancy_id => 1') на контроллер, где вы будете писать '@event = Event .find (params [: my_fancy_id]) ' – rmagnum2002