如何使用rails获取并保存到db用户IP?

时间:2016-09-18 16:29:17

标签: html ruby-on-rails ruby-on-rails-4

我需要保存用户ip但不知道如何制作它。

我的控制器看起来像这样。

class CadastroController < ApplicationController
 def create
    valores = params.require(:cadastro).permit!
    cad = Cadastro.create valores
 end
end

我的表单看起来像这样

<%= form_for Cadastro.new do |f| %>
  <fieldset>
    <input id="nome" name="cadastro[nome]" type="text" placeholder="Nome" class="form-control input-md" required="">    
    <input id="email" name="cadastro[email]" type="text" placeholder="E-mail" class="form-control input-md" required="">
    <input id="telefone" name="cadastro[telefone]" type="text" placeholder="Telefone" class="form-control input-md">
    <input id="cidade" name="cadastro[cidade]" type="text" placeholder="Cidade" class="form-control input-md">
    <button id="download" name="download" class="btn btn-default" type="submit">Donwload</button>
  </fieldset>
<% end %>

有人能伸出援手吗?

1 个答案:

答案 0 :(得分:2)

request.remote_ip会为您提供用户IP

您的CadastroController可能如下所示:

class CadastroController < ApplicationController
  def create
    valores = params.require(:cadastro).permit!
    cad = Cadastro.create valores.merge(user_ip: request_ip) #user_ip is the column name
  end

 private
  def request_ip
    request.remote_ip == "127.0.0.1" ? "127.0.0.1" : request.remote_ip
  end
end