1

いくつかの奇妙な理由で困難であることが証明されている単純なシナリオがあります-単純な間違いを犯していると確信しています。

独自のアクションとルートを定義する必要がある GuestController があります。この奇妙な問題を回避できないため、現時点では 1 つのアクションしかありません。アクションは次のとおりです。

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

param 値を生成するルートは次のとおりです。

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

これは私のroutes.rbの終わりに近いです

だから私のビューbooking.html.rbで、指定されたfriendly_idに関連する予約のIDを表示したい

<%= @booking.id %>

エラーが表示されます:Guests#bookingのNoMethodError

頭が痛いので、なぜこれが起こっているのか、誰もが考えました。

4

1 に答える 1

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])
于 2013-09-14T10:58:42.237 に答える