0
我正在做一些測試我的應用程序。使用強參數合併,NilClass錯誤
我有一個表單接受一個城市(自動完成的城市名稱)和一些日期。
因爲我有一個自動完成功能,我必須通過顯示名稱查找城市來獲得city_id。
def trip_params
params.require(:trip).permit(:start_date, :end_date).merge(:city_id => City.find_by_display(params[:trip][:city_id]).id)
end
問題是如果用戶在沒有城市的情況下獲取表單。我收到一個錯誤:
undefined method `id' for nil:NilClass
因爲沒有找到記錄。有什麼更好的方式來構建這個,這樣我就可以在沒有城市進入的情況下重定向回'新'。
創建方法,以防萬一它的幫助。
def create
@trip = current_user.trips.build(trip_params)
if @trip.save
flash[:success] = "Trip to #{@trip.city.name} added."
redirect_to root_path
else
flash.now[:error] = @trip.errors.full_messages
render 'new'
end
end