我是新人,我有一个基本问题
当我使用Rails 4使用carmen-rails创建一个新用户时,country_code和states_code不会通过
允许country_code和state_code
以下是我的代码:
在设计注册中:
= f.label :country_code
= f.country_select :country_code, {priority: %w(US CA), prompt: "Please select your country"}, :style => "width:170px;float:left;font-size:14px;", :type => 'text'
= f.label :state_code
= render partial: '/users/subregion_select', locals: {parent_region: f.object.country_code}
在users / subregionselect中:
<% parent_region ||= params[:parent_region] %> <% unless parent_region.nil? %>
<% country = Carmen::Country.coded(parent_region) %>
<% end %>
<% if country.nil? %>
Please select a country above
<% elsif country.subregions? %>
<%= f.subregion_select(:user, :state_code, parent_region) %>
<% else %>
<%= text_field(:user, :state_code) %>
<% end %>
在users.js.coffee中
$('select#user_country_code').change (event) ->
select_wrapper = $('#user_state_code_wrapper')
$('select', select_wrapper).attr('disabled', true)
country_code = $(this).val()
url = "/users/subregion_options?parent_region=#{country_code}"
select_wrapper.load(url)
在routes.rb
中get '/users/subregion_options' => 'users#subregion_options'
用户控制器中的:
def subregion_options
render partial: 'subregion_select'
end
在我的控制台上,除了country_code之外,所有数据都被保存:nil(即使我放了美国),当我选择国家时,不会生成states_code。
是因为我需要使用Formstatic吗?
感谢您的帮助:)
答案 0 :(得分:1)
看起来像Devise params卫生问题。
#application_controller
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u|
u.permit(:email,
:password,
:password_confirmation,
:first_name,
:last_name,
:street1,
:street2,
:city,
:state,
:zipcode,
:country_code)
}
试一试!
干杯