У меня есть рельсы приложения и я использую гем client_side_validations с Devise для проверки формы регистрации разработки.
//account.rb
has_one :user
validates :username, presence: true, uniqueness: true
//user.rb
belongs_to :account
validates :email, presence: true, uniqueness: true
//новый.html.erb
<%= form_for(@user, :url => registration_path(resource_name), :validate => true) do |f| %>
<%= f.fields_for :account, :validate => true do |inner_form|%>
<div class="field">
<%= inner_form.label :username, "Username" %><br />
<%= inner_form.text_field :username %>
</div>
<% end %>
<div class="field">
<%= f.label :email, "Email" %>
<%= f.email_field :email %>
</div>
<div>
<%= f.submit "Sign up" %>
</div>
<% end %>
Проверка работает нормально с полем электронной почты, но для имени пользователя не работает ... помогите мне, спасибо
ОБНОВЛЕНИЕ --- проверить показ, но это не вложенная форма
изменить :аккаунт на @аккаунт
<%= f.fields_for :account, :validate => true do |inner_form|%>
to
<%= f.fields_for @account, :validate => true do |inner_form|%>
при отправке я получаю ожидаемую ошибку Account (# 27129348), получил ActiveSupport:: HashWithIn DifferentAccess (# 26695068)
когда валидации не сработали, html код
<input id="user_account_attributes_username" name="user[account_attributes][username]" size="30" type="text" data-validate="true">
проверяет сработало
<input id="user_account_username" name="user[account][username]" size="30" type="text" data-validate="true">
проблема
user_account_attributes_username
пользователь[account_attributes][имя пользователя]
работал
user_account_username
пользователь [учетная запись] [имя пользователя]
<%= f.fields_for :account
. Я уверен, что вы должны изложить его следующим образом<%= fields_for @account, :validate => true do |inner_form|%>
дайте мне знать, если это решит проблему. - person   schedule 12.11.2012