2013-08-12 2 views
0

Я создал метод под названием 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!

ответ

0
get "verify/:id", to: 'events#verify', as: "verify" 

в браузере перейти по URL-адресу, например:

localhost:3000/verify/1

+0

Это работало отлично! Не могли бы вы объяснить, что здесь происходит? Я прочитал руководство по направляющим для маршрутизации, но это никому не помогло. Еще раз спасибо! – Devan

+0

хорошо .. ничего волшебного, говоря 'get" verify /: id "означает, что после'/verify/'будет параметром, который вы отправляете, в вашем случае id ': id'. – rmagnum2002

+0

также вы можете назвать свой параметр так, как хотите, например: 'get" verify /: my_fancy_id "и этот параметр будет отправлен (': my_fancy_id => 1') на контроллер, где вы будете писать '@event = Event .find (params [: my_fancy_id]) ' – rmagnum2002

Смежные вопросы