Rails и определенные пользователем действия

У меня есть простой сценарий, который по какой-то странной причине оказывается трудным - я уверен, что делаю простую ошибку.

У меня есть GuestController, для которого мне нужно определить свои собственные действия и маршруты. На данный момент у него есть только одно действие, потому что я не могу решить эту странную проблему. Вот действие:

def booking
  @booking = Booking.where(:friendly_id => params[:friendly_id])
end

Маршрут, который производит значение параметра:

match '/:friendly_id', to: 'guests#booking',     via: 'get'

и это близко к концу моего routes.rb

поэтому, на мой взгляд, booking.html.rb я хочу показать идентификатор бронирования, относящийся к заданному friendly_id

<%= @booking.id %>

и я получаю сообщение об ошибке: NoMethodError в гостях # бронирование

Кто-нибудь понял, почему это происходит, потому что от этого у меня болит голова.


person tommyd456    schedule 14.09.2013    source источник
comment
Можете ли вы опубликовать адрес URL, который вы написали   -  person Sabyasachi Ghosh    schedule 14.09.2013
comment
попробуйте найти путь маршрута с помощью рейк-маршрутов   -  person Sabyasachi Ghosh    schedule 14.09.2013


Ответы (1)


Проблема здесь в том, что вы не получаете Booking, вы генерируете ActiveRecord :: Relation:

@booking = Booking.where(:friendly_id => params[:friendly_id])
# should be
@booking = Booking.where(:friendly_id => params[:friendly_id]).first
# or
@booking = Booking.find_by(:friendly_id => params[:friendly_id])
person kik    schedule 14.09.2013
comment
конечно - мне нужно найти именно одно бронирование, не так ли! ахх спасибо - person tommyd456; 14.09.2013