在创建新应用程序时,我使用了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 %>
但是我收到了一个错误。
对我来说令人困惑的是,如果我离开现场,但没有输入值,一切仍然正常 - 这是出乎意料的。由于(作为我的故障排除的一部分)我完全删除了该字段 - 并收到一条错误消息,指出无法处理表单,因为组织部分是空白的。
任何帮助都将不胜感激。
答案 0 :(得分:0)
马克斯:谢谢。如你所知,这就像一个魅力。该字段现在已隐藏,表单正确提交。感谢。
<%= f.fields_for :organization do |org| %>
<%= org.hidden_field :name %>
<% end %>