1

私はこれらの2つのモデルを持っています:

ユーザー

has_one :additional_data, :dependent => :destroy
accepts_nested_attributes_for :additional_data

追加データ

belongs_to :user
validates :skype, :presence => {:message => 'cannot be blank.'}

とフォーム:

<%= form_for@user do |f| %>
  <p>
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </p>
  <%= f.fields_for :additional_data do |ad| %>
        <p>
          <%= ad.label :skype, "Skype" %><br />
          <%= ad.text_field :skype %>
        </p>
  <% end %>
<% end %>

空のフォームを送信すると、Skypeデータが不足しているというメッセージが表示されません。私は何が欠けていますか?

また、URLの変数の値に応じて検証できるかどうかをお聞きしたいと思いますadditional_data

4

2 に答える 2

1

デフォルトでは、Railsはインラインエラーを表示しません。

私がお勧めする単純なフォームのようなプラグインを使用するか、を繰り返してフォームの先頭にエラーを表示することができます@user.errors.full_messages

于 2012-09-09T13:16:20.213 に答える
1

validates_associatedをチェックしてください。関連する1つまたは複数のオブジェクトがすべて有効であるかどうかを検証します。

# user.rb
has_one :additional_data, :dependent => :destroy

validates_associated :additional_data

accepts_nested_attributes_for :additional_data
于 2012-09-09T13:48:12.683 に答える