报名表:无法隐藏字段

时间:2013-11-22 03:40:09

标签: ruby-on-rails forms devise views

在创建新应用程序时,我使用了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 %>

但是我收到了一个错误。

对我来说令人困惑的是,如果我离开现场,但没有输入值,一切仍然正常 - 这是出乎意料的。由于(作为我的故障排除的一部分)我完全删除了该字段 - 并收到一条错误消息,指出无法处理表单,因为组织部分是空白的。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

马克斯:谢谢。如你所知,这就像一个魅力。该字段现在已隐藏,表单正确提交。感谢。

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