我在Rails 3.2应用中使用了Simple Form和Devise宝石。在用户注册视图中,我添加了一个复选框,供用户检查是否同意应用程序的使用条款。但是,现在,即使在检查时,代码也没有意识到它已被检查,因此它给出了错误消息,即不接受此必填字段。
这可能与我根据此question在表单中实施content_for
代码有关。
用户模型:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
validates :agree_to_terms, :acceptance => true
end
观点:
<%= content_for(:the_links) do %>
I agree to the <%= link_to "Terms of Service", terms_path,:remote => true %>
and <%=link_to "Privacy Policy", privacy_path, :remote => true%>
<% end %>
<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= f.input :agree_to_terms, :as => :boolean, :inline_label => content_for(:the_links), :label => false %>
<%= f.button :submit, "Sign up", :class =>"btn btn-success btn-large" %>
<% end %>
<%= render "devise/shared/links" %>