我正在使用设计进行身份验证,在"注册"页面上,我有一个"组织"文本字段,因此当用户注册时,他们将创建一个组织,我希望用户与该组织相关联(用户模型具有organization_id属性).我创建了设计视图,并为组织名称添加了fields_for.在我的模型中,我有User belongs_to:organization and Organization has_many:users(将有多个用户与组织关联).在没有修改控制器的情况下,我已经找不到尝试这样做的每一条路,但没有运气.请不要在不修改控制器的情况下建议这样做,除非你有一个示例应用程序,你已经实现了它,你可以指向它.
我已经创建了一个注册控制器,如下所示:覆盖设计注册控制器
我只是在控制器中抛出了一些put语句,我没有看到它们显示在控制台上,所以看起来我没有进入这个控制器.
我还将我的观点从app/view/devise/registrations复制到app/views/registrations,之后我的观点似乎来自外太空!我创建的组织字段不再显示,我似乎无法分辨加载视图的位置.
很抱歉没有更简洁,但我不知道该去哪里.
我遇到嵌套属性和Devise的问题.与如何在设计模型中使用嵌套属性类似的问题.据我所知,我已按照此处的建议设置了所有内容: 覆盖设计注册控制器
我已经设置了关联的用户和订阅,我已经"accepts_nested_attributes_for"和包括:subscriptions_attributes中attr_accessible,但我从设计控制器警告.
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,:recoverable, :rememberable, :trackable, :validatable
validates_presence_of :first_name, :last_name
has_many :subscriptions
accepts_nested_attributes_for :subscriptions
attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :remember_me, :subscriptions_attributes
...
end
Run Code Online (Sandbox Code Playgroud)
-
class Subscription < ActiveRecord::Base
belongs_to :user
validates_presence_of :user_id, :chargify_subscription_id, :chargify_product_handle
attr_accessible :user_id, :chargify_subscription_id, :chargify_product_handle
...
end
Run Code Online (Sandbox Code Playgroud)
设计/注册/ new.html.erb:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :first_name %><br />
<%= f.text_field :first_name %></p> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在用户注册后立即创建一个文件夹,所以我覆盖了注册控制器上的创建操作(设计),但我不知道如何访问新创建的用户以创建具有其名称的文件夹稍后上传文件.
到目前为止,我有这个:
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
super
create_folder
end
def update
super
end
def create_folder
path = Pathname.new(':rails_root/tmp/')
directory_name = ":current_user"
Dir.mkdir(path, directory_name) unless File.exists?(directory_name)
end
end
Run Code Online (Sandbox Code Playgroud)
的routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}
Run Code Online (Sandbox Code Playgroud)
我按照这个来覆盖注册控制器.
我很感激我能得到任何帮助.
使用案例:
有人可以帮我这个吗?
谢谢 :)
当我注册一个用户,但还没有确认设置时(即将来会被注释掉),它会自动登录用户吗?
我需要sign_up来签署用户,但不签署他,它需要重定向到登录页面,我如何注册不登录用户?