入力ボックスを空白のままにすると。毎回このエラーが発生します。空白のときに新しいレコードを作成したくありません。そうでないときは、新しい記録を作りたいです。
この入力ボックスはネストされており、コントローラーのコードはエラーを回避するためにこのように記述されています
def create
# Check if there is any contact info added
if params[:girl][:contact_attributes][:mail].empty?
params[:girl].delete(:contact_attributes)
end
@girl = Girl.new(params[:girl])
respond_to do |format|
if @girl.save
format.html { redirect_to @girl, notice: 'Girl was successfully created.' }
format.json { render json: @girl, status: :created, location: @girl }
else
format.html { render action: "new" }
format.json { render json: @girl.errors, status: :unprocessable_entity }
end
end
end
ビューはこのようなものです
<%= form_for(@girl) do |f| %>
....
<div class="field">
<%= f.label :mail %><br />
<%= f.fields_for :contact_attributes, @girl.contact do |contact| %>
<%= contact.text_field :mail %>
<% end %>
</div>
....
<div class="actions">
<%= f.submit %>
</div>
<% end %>
私のモデル
class Girl < ActiveRecord::Base
has_many :users
has_one :contact
accepts_nested_attributes_for :contact
attr_accessible :id, :name_en, :name_ja, :gender_id, :contact_attributes, :photo, :tag_list
searchable do
text :name_en, :name_ja
text :contact do
contact.mail
end
end
has_attached_file :photo,
:styles => {
:thumb=> "100x100>",
:small => "400x400>" }
acts_as_taggable_on :tags
acts_as_commentable
end