2013-11-22 121 views
0

在创建新应用程序时,我使用了marklocklear示例(https://github.com/marklocklear/devise_multi_tentant)来帮助创建多租户环境。它运作良好。注册表单:无法隐藏字段

接下来我想做的事情我认为会很简单,但对我来说已经变得相当吝啬。

我想要做的不是让最初的管理员用户必须输入组织名称(在我的应用程序中不需要),我想隐藏该字段。

注册表格(的作品):

<h2>Sign up</h2> 
<% resource.organization ||= Organization.new %> 
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 
    <div><%= f.label :email %><br /> 
    <%= f.email_field :email %></div> 
    <%= f.fields_for :organization do |org| %> 
     <div><%= 'Organization or Company Name' %><br /> 
     <%= org.text_field :name %></div> 
    <% end %> 
    <div><%= f.label :password %><br /> 
    <%= f.password_field :password %></div> 
    <div><%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %></div> 
    <div><%= f.submit "Sign up" %></div> 
<% end %> 
<%= render :partial => "devise/shared/links" %> 

所以,我这样做是为了试图隐藏字段:

<%= f.fields_for :organization do |org| %> 
     <%= f.hidden_field :name %> 
<% end %> 

但我得到一个错误。

对我而言,令人困惑的是,如果我离开这个领域,但不要输入一个值,那么所有东西都能正常工作 - 这是意想不到的。由于(作为我的疑难解答的一部分),我完全删除了该字段 - 并收到错误消息,指出无法处理表单,因为组织部分为空。

任何援助将不胜感激。

+2

使用'org.hidden_​​field'不'f.hidden_​​field' – Max

+0

谢谢您的帮助。它工作完美。 – user1648020

回答

0

Max:谢谢。如你所知,这就像一个魅力。该字段现在隐藏并且表单正确提交。谢谢。

<%= f.fields_for :organization do |org| %> 
     <%= org.hidden_field :name %> 
<% end %>