如何在活动管理员中插入IP地址?

时间:2017-09-25 11:17:50

标签: ruby-on-rails ruby ruby-on-rails-5 activeadmin

我有一个名为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

我尝试了很多,但仍然没有工作。

1 个答案:

答案 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

因此,如果您的预订模式同时包含userip字段/方法,则可以在create

中的BookingsController操作中进行设置
def create
 booking = Booking.new(booking_params)
 booking.user = current_user
 booking.ip = request.ip
end