我有一个名为booking的模型,我使用主动管理插件作为资源管理。我在后端有一个名为booking的表单,我需要将当前登录用户的ip地址和用户名(插入表单数据)插入数据库,而不在后端创建任何输入字段。请建议。我使用mysql作为数据库平台。
这是我的控制器语法
class CustomizedBookingsController < ApplicationController
def create
customized_booking = CustomizedBooking.new(params[:customized_booking])
customized_booking.booked_by = current_admin_user
customized_booking.booking_ip = request.remote_ip
end
end
我尝试了很多,但仍然没有工作。
答案 0 :(得分:1)
如果您使用Devise进行身份验证,则可以使用方法current_user
,请参阅此处的文档:https://github.com/plataformatec/devise#controller-filters-and-helpers
要添加IP地址,您使用ip
方法,ActionDispatch::Request
的一部分。请查看此处的文档:http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-ip
因此,如果您的预订模式同时包含user
和ip
字段/方法,则可以在create
BookingsController
操作中进行设置
def create
booking = Booking.new(booking_params)
booking.user = current_user
booking.ip = request.ip
end