Ruby on rails 有没有办法让城市和国家的游客进入Rails控制器?
在我当前的应用程序中,我使用Geocoder gem获取访客所在的城市和国家。我在视图中使用隐藏字段来获取这些详细信息。提交登录表单后,这些详细信息将发送给控制器,控制器将其保存到数据库中。当我试图通过使用直接从控制器获取这些详细信息时Ruby on rails 有没有办法让城市和国家的游客进入Rails控制器?,ruby-on-rails,ruby-on-rails-4,rails-geocoder,Ruby On Rails,Ruby On Rails 4,Rails Geocoder,在我当前的应用程序中,我使用Geocoder gem获取访客所在的城市和国家。我在视图中使用隐藏字段来获取这些详细信息。提交登录表单后,这些详细信息将发送给控制器,控制器将其保存到数据库中。当我试图通过使用直接从控制器获取这些详细信息时 request.location.city 它将为数据库分配一个空白值。如果我在视图中使用隐藏字段,有人可以对它们进行调整,对吗?那么,我如何解决这个问题呢?在呈现任何内容之前,您应该存储访问者信息: class UsersController def
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
您是否尝试使用非隐藏字段进行调试?实际上,我需要获取登录页面的所有访问者的详细信息。然后您需要通过
new
方法,而不是通过create
方法来登录。我会更新我的答案。