使用 Devise 和 simple_form 进行多选
Multiselect with Devise and simple_form
我有一个 rails 应用程序,它使用 Devise 和 simple_form 来注册和验证用户。我想添加另一个 table 首选项,这样一个用户可以有多个首选项,一个首选项可以分配给多个用户。
我关注了这个:https://dev.to/neshaz/join-table-in-rails-23b5
并通过连接 table 建立了各自的关联,我可以在我的表单上查看多选复选框。但我一直停留在处理注册控制器页面中的参数部分。对于上下文,这就是我所拥有的:
registration_controller.rb
def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up) do |u|
u.permit({ account_attributes: [:username], invite_request_attributes: [:text] }, :company, :email, :password, :password_confirmation, :invite_code, :agreement, :website, :confirm_password)
end
结束
_registration.html.haml:
- for preference in Preference.all
= check_box_tag "preference[user_ids][]", preference.id
= h preference.pref
你这样试试
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name, preference_ids: []])
devise_parameter_sanitizer.permit(:account_update, keys: [:name, :website, :bio])
end
end
_registration.html.haml:
- for preference in Preference.all
= check_box_tag "user[preference_ids][]", preference.id
= h preference.pref
我有一个 rails 应用程序,它使用 Devise 和 simple_form 来注册和验证用户。我想添加另一个 table 首选项,这样一个用户可以有多个首选项,一个首选项可以分配给多个用户。
我关注了这个:https://dev.to/neshaz/join-table-in-rails-23b5
并通过连接 table 建立了各自的关联,我可以在我的表单上查看多选复选框。但我一直停留在处理注册控制器页面中的参数部分。对于上下文,这就是我所拥有的:
registration_controller.rb
def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up) do |u|
u.permit({ account_attributes: [:username], invite_request_attributes: [:text] }, :company, :email, :password, :password_confirmation, :invite_code, :agreement, :website, :confirm_password)
end
结束
_registration.html.haml:
- for preference in Preference.all
= check_box_tag "preference[user_ids][]", preference.id
= h preference.pref
你这样试试
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name, preference_ids: []])
devise_parameter_sanitizer.permit(:account_update, keys: [:name, :website, :bio])
end
end
_registration.html.haml:
- for preference in Preference.all
= check_box_tag "user[preference_ids][]", preference.id
= h preference.pref