2013-11-27 64 views
0

在我目前的應用程序中,我使用Geocoder gem來獲取遊客的城市和國家。我在我的視圖中使用隱藏字段來獲取這些細節。當提交登錄表單時,這些詳細信息將被髮送到控制器,控制器將把它們保存到數據庫中。當我試圖通過使用有沒有辦法讓Rails控制器中的訪客城市和國家?

request.location.city 

直接從控制器獲取這些詳細信息時它將爲數據庫分配一個空值。如果我在視圖中使用隱藏字段,有人可以對它們進行調和嗎?那麼,我該如何解決這個問題?

+0

您是否嘗試過使用非隱藏字段只是爲了調試? –

回答

0

,可以儲存訪客信息您提供任何內容之前:

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 
+0

其實我需要了解訪問者的詳細信息到登錄頁面。 – THpubs

+0

然後,您需要通過'new'方法記錄,而不是通過'create'方法。我會更新我的答案。 –

相關問題