Я новичок в RoR и задаю вам небольшой вопрос.RoR: Проблемы с заранее заполненными формами
У меня есть таблица, как
<td>Some Informations</td>
<td><a href="">Register me</a></td>
Если пользователь нажимает на одну из этих ссылок, он будет перенаправлен на новую форму, где он может добавить некоторую информацию ... Эти формы IST укажи с некоторыми placeholder- данные, такие как
<input tye="input" placeholder"<%= @spot.reference %>">
Когда все необходимые сведения были заполнены, Everythings работает - но если пользователь забудет поле, он должен вернуться в форму с некоторыми информациями об ошибках.
Ну, у меня есть некоторые другие формы, где все прекрасно работает, но в этом случае, мои укажи поле делают некоторые проблемы ..
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
Я определяю @spot в своем личном методе «connect_google». Это работает для моего «нового» метода, но не для моего «создания», и я не знаю, почему ... – Tobias
Возможно, потому что, когда вызывается функция create, параметр ': id' не идет с ним при изменении маршрута. попробуйте сохранить последний использованный ': id' и используя этот идентификатор. –
:/Спасибо :) – Tobias