私はそれぞれが多くのオファーを持つことができる会場のテーブルを持っています。fields_forを使用してフォームの繰り返しを停止するにはどうすればよいですか?
私は、会場の編集ページから会場にオファーを追加するフォームを持っています。
フォームを送信すると、新しく作成されたオファーは部分的に表示されますが、フォームをクリアして別のオファーを入力できるようにする代わりに、別のフォームが作成されます。
5つのオファーを入力すると、6つの新しいオファーフォームが追加され、5つのオファーフォームには保存された詳細が入力されます。
私のコードは次のようになります。
会場モデル
class Venue < ActiveRecord::Base
has_many :offers
accepts_nested_attributes_for :offers, :reject_if => lambda { |a| a[:title].blank? }
end
編集 - 会場コントローラ
class VenuesController < ApplicationController
protect_from_forgery :only => [:update, :delete, :create]
load_and_authorize_resource
def index
if
@venues = Venue.with_type(params[:venuetypes]).with_area(params[:areas]).order("average_rating DESC").all
else
@venues = Venue.all
end
@venues = @venues.paginate :per_page => 15, :page => params[:page]
end
def new
@venue = Venue.new
end
def create
@venue = Venue.new params[:venue]
if @venue.save
flash[:notice] = 'Venue added'
redirect_to venues_path
else
render :action => :new
end
end
def edit
@venue = Venue.find(params[:id])
1.times { @venue.offers.build }
end
def update
@venue = Venue.find(params[:id])
@venue.attributes = params[:venue]
if @venue.save!
flash[:notice] = 'Venue updated successfully'
redirect_to :back
end
end
def show
@venue = Venue.find(params[:id])
@review = Review.new
end
def destroy
Venue.find(params[:id]).destroy
flash[:notice] = 'Venue deleted successfully'
redirect_to venues_path
end
end
会場edit.html.erb
<%= form_for @venue do |f| %>
<div class="edit_venue_details">
<h2 class="venue_show_orange">Offers</h2>
<% if @venue.offers.count.zero? %>
<div class="no_reviews">
No offers added yet.
</div>
<% else %>
<%= render :partial => 'offers/offer', :collection => @venue.offers %>
<% end %>
<div class="clearall"></div>
</div>
<h2 class="edit_venue_sub_header">Add a new offer</h2>
<%= f.fields_for :offers do |offer| %>
<p class="edit_venue">title: <br>
<%= offer.text_field :title, :class => "edit_venue_input" %></p>
<% end %>
<button class="submit_button" type="submit"> Save changes</button>
<% end %>
送信時に新しいフォームが作成されないようにするにはどうすればよいですか?
ご協力いただきありがとうございます。
編集
は、新しいオブジェクトが行きますか編集アクションに? – s84
コントローラ全体を表示してください – s84
@コードクローン、見ていただきありがとうございます、私は私の質問を編集しました。 – Dave