在我目前的應用程序中,我使用Geocoder gem來獲取遊客的城市和國家。我在我的視圖中使用隱藏字段來獲取這些細節。當提交登錄表單時,這些詳細信息將被髮送到控制器,控制器將把它們保存到數據庫中。當我試圖通過使用有沒有辦法讓Rails控制器中的訪客城市和國家?
request.location.city
直接從控制器獲取這些詳細信息時它將爲數據庫分配一個空值。如果我在視圖中使用隱藏字段,有人可以對它們進行調和嗎?那麼,我該如何解決這個問題?
在我目前的應用程序中,我使用Geocoder gem來獲取遊客的城市和國家。我在我的視圖中使用隱藏字段來獲取這些細節。當提交登錄表單時,這些詳細信息將被髮送到控制器,控制器將把它們保存到數據庫中。當我試圖通過使用有沒有辦法讓Rails控制器中的訪客城市和國家?
request.location.city
直接從控制器獲取這些詳細信息時它將爲數據庫分配一個空值。如果我在視圖中使用隱藏字段,有人可以對它們進行調和嗎?那麼,我該如何解決這個問題?
,可以儲存訪客信息您提供任何內容之前:
class UsersController
def new
# I suspect that, for fast insert, you should probably use a NoSQL database
# to perform `store!` or even just write it to a log file
Visitor.store!(:city => request.location.city, :ip => request.ip)
end
def create
@user = User.build(params[:user].merge(:city => request.location.city))
if @user.valid?
@user.save
flash[:notice] = "You've been registered!"
redirect_to user_dashboard_path
else
flash[:notice] = "Couldn't register your account"
render action: "new"
end
end
end
其實我需要了解訪問者的詳細信息到登錄頁面。 – THpubs
然後,您需要通過'new'方法記錄,而不是通過'create'方法。我會更新我的答案。 –
您是否嘗試過使用非隱藏字段只是爲了調試? –