我是RoR的新手并且有一点问题。
我有一张像
这样的表格<td>Some Informations</td>
<td><a href="">Register me</a></td>
如果用户点击其中一个链接,他将转发到一个新表单,在那里他可以添加一些信息...这些表单预先填充了一些占位符数据,如
<input tye="input" placeholder"<%= @spot.reference %>">
当填写完所有必需的信息后,每个方法都可以工作 - 但是如果用户忘记了一个字段,他应该返回带有一些错误信息的表单。
好吧,我有一些其他表格,一切正常,但在这种情况下,我的预填充字段出现了一些问题..
undefined method `reference' for nil:NilClass
Extracted source (around line #15):
<input type="hidden" name="trip[reference]" value="<%= @spot.reference %>">
我该怎样做才能确保再次预填充字段? 这是我的代码......
class TripsController < ApplicationController
before_filter :authenticate_user!
def index
end
# show the givin trip
def show
@trip = Trip.find(params[:id])
end
# show the new template
# the user can configurate his trip
def new
@trip = Trip.new
connect_google
end
def all
@trips = Trip.all
end
# create a new trip and set the current user as trip-admin
def create
@trip = Trip.new(trip_params.merge(admin: current_user.id))
@trip.admin = current_user.id
if @trip.save
attach(@trip)
redirect_to @trip
else
connect_google
render 'new'
end
end
def attach(trip)
current_user.attend(trip)
end
private
def trip_params
params.require(:trip).permit(:reference, :hotel, :from, :to, :notice)
end
def connect_google
@googlePlaces = GooglePlaces::Client.new('API KEY')
@spot = @googlePlaces.spot(params[:id])
rescue GooglePlaces::InvalidRequestError
#redirect_to '/' and return
end
end
答案 0 :(得分:0)
您似乎没有在控制器中定义@spot
变量,而是要求它的参考字段。在控制器中的@spot
或show
函数中定义new
,具体取决于您的表单所在的页面,它应该有效。