Ruby on rails Rails通过简单的表单设计注册实现了许多功能
好的,我有一个用户:Ruby on rails Rails通过简单的表单设计注册实现了许多功能,ruby-on-rails,ruby,ruby-on-rails-4,devise,Ruby On Rails,Ruby,Ruby On Rails 4,Devise,好的,我有一个用户: class User < ActiveRecord::Base # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberabl
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :user_positions
has_many :positions, :through => :user_positions
accepts_nested_attributes_for :positions
end
class用户:用户\u位置
接受:位置的\u嵌套\u属性\u
结束
此用户可以有多个位置:
class Position < ActiveRecord::Base
has_many :user_positions
has_many :users, :through => :user_positions
end
class UserPosition < ActiveRecord::Base
belongs_to :user
belongs_to :position
accepts_nested_attributes_for :position
end
类位置:user\u位置
结束
通过用户位置:
class Position < ActiveRecord::Base
has_many :user_positions
has_many :users, :through => :user_positions
end
class UserPosition < ActiveRecord::Base
belongs_to :user
belongs_to :position
accepts_nested_attributes_for :position
end
class-UserPosition
我有一个表格可以将所有这些位置显示为复选框:
<%= simple_form_for resource, as: resource_name, url: registration_path(resource_name) do |f| %>
<%= devise_error_messages! %>
<%= f.label :email %>
<%= f.email_field :email, autofocus: true %>
<%= f.label :password %>
<%= f.password_field :password, autocomplete: "off" %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, autocomplete: "off" %>
<%= f.association :positions, as: :check_boxes %>
<%= f.submit "Sign up", class: "button" %>
<%- if controller_name != 'sessions' %>
or
<%= link_to "Sign in", new_session_path(resource_name), class: "button" %>
<% end -%>
<% end %>
或
我正在使用Desive处理注册,但仅使用以下覆盖:
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(:username, :email, :password, :position_ids) }
end
end
类注册控制器[:create]
受保护的
def配置\u允许的\u参数
为(:注册){许可证(:用户名,:电子邮件,:密码,:位置ID)}设计参数
结束
结束
我通过cherry从这个网站上挑选了很多答案来构建这个网站……但由于某些原因,它仍然无法保存这些位置。我不知道我还能做什么。提前感谢。由于
位置\u id
将作为数组传递,您需要更新配置\u允许的\u参数,如下所示:
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :position_ids => []) }
end
啊,是的,我现在想起来了……啊,我得回去再看一遍那些代码学校的视频了。太久了。我会试试看,如果有效的话,适当地标出答案是的,但仍然没有效果。创建一个用户很好…没有问题…但没有附加位置