我在Rails应用程序中使用Devise,并且需要在用户登录时传递额外的字段(可能)。如果用户通过子域登录,一切正常。如果他们没有子域进来,我希望他们被要求把它放到一个文本框中。子域不是用户模型的一部分,它是组织(公司)的一部分。这是观点 ```
<div class="row">
<%= f.email_field :email, :class => "input_text", :placeholder=> "Email" %>
</div>
<div class="row">
<%= f.password_field :password, :class => "input_text", :placeholder=> "Password" %>
</div>
<% if request.subdomain.blank? %>
<div class="row">
<%= f.text_field :subdomain, :class => "input_text", :placeholder=> "Organization" %>
</div>
<% end %>
```
以下是用户模型的相关部分......
```
devise :token_authenticatable, :database_authenticatable, :recoverable, :rememberable, :trackable, :lockable,
:authentication_keys => [:email], :request_keys => [:subdomain]
def self.find_for_authentication(conditions={})
conditions[:organization_id] = Organization.find_by_subdomain(conditions[:subdomain]).id
conditions.delete(:subdomain)
super(conditions)
end
```
我最终在视图中为nil类定义了子域名。
关于如何使这项工作的任何想法?