好的,另一个烦人的问题。
我有一个 GuestController ,它的索引操作如下:
def index
@booking = Booking.find(session[:booking_id]) #i have also hard coded values to make sure the session isn't the issue
@guest = Guest.find(session[:guest_id])
end
和个人操作(执行更新)如下:
def personal
@guest = Guest.find(session[:guest_id])
if @guest.update(post_params)
redirect_to :controller => 'guests', :action => 'cards'
else
render 'index'
end
end
我的 index.html.erb 视图使用 @booking 变量:
<%= @booking.friendly_id %> #this is one example
并且还包含将“姓名”字段提交给个人操作的表单。如果数据有效,它会更新得很好,但如果它无效,@booking 变量不存在???
我需要显示验证错误,所以我不能只使用redirect_to。
我得到的错误是:Guests#personal 中的 NoMethodError和未定义的方法 `friendly_id' for nil:NilClass
有任何想法吗?