我有一个简单的场景,由于一些奇怪的原因而证明是困难的 - 我确信我犯了一个简单的错误。
我有一个GuestsController,我需要定义自己的动作和路线。它目前只有一个动作,因为我无法解决这个奇怪的问题。这是行动:
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有关的预订ID
<%= @booking.id %>
我收到一条错误:来宾#booking
中的 NoMethodError任何人都知道为什么会这样,因为它让我头疼。
答案 0 :(得分:1)
这里的问题是你没有检索预订,你生成一个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])