我正在尝试在Devise注册中添加国家/地区选择,我使用来自https://github.com/stefanpenner/country_select#example的country_select gem
通过使用country_select("user", "country")
使用模型和属性作为参数来解释简单用法:
问题:当我按下提交按钮时,用户已创建且状态良好,但国家/地区列没有来自我的选择的数据
目的:提交注册后我想将我从注册表单中选择的国家/地区插入数据库(表格:用户,列:国家/地区)
sign_up.html.erb
<h2><center>Sign up</center></h2>
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="form-inputs" style="float; margin:0 auto;width:35%">
<%= f.input :email, required: true, autofocus: true %>
<%= f.input :password, required: true %>
<%= f.input :password_confirmation, required: true %>
<%= f.label :country %>
<%= country_select("user", "country") %> <<-- My model's name is user.rb and in my users table has a country column
</div>
<div class="form-actions" style="float; margin:0 auto;width:10%">
<%= f.button :submit, "Sign up" %>
</div>
<% end %>
**我的模型名称是user.rb,而我的users表中有一个国家/地区列
感谢您提前
答案 0 :(得分:0)
试试这个
<%= f.input :country, as: :country %>
答案 1 :(得分:0)
我已按照此问题解决了我的问题并适应了我的问题Adding extra registration fields with Devise
我正在创建覆盖控制器(本例中为Registrations Controller),允许Devise将国家/地区变量添加到数据库
registrations_controller.rb
我在此文件中添加了:country
class RegistrationsController < Devise::RegistrationsController
before_filter :configure_permitted_parameters, :only => [:create]
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :country) }
end
end
您可以在此链接中看到原始registrations_controller.rb:https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb
routes.rb
devise_for :users, :controllers => { :registrations => 'registrations' }
重要请确保devise_for :users
中没有routes.rb
行,如果有,请将其删除
好吧,现在我可以使用<%= country_select("user", "country") %>
将国家/地区选择保存到数据库中而没有任何问题