私はこれに1日以上携わっていますが、誰かが私を助けてくれることを願っています。私はruby/railsに不慣れで、近づいていると思います。
私は見解を持っていますが、有効になっている場合は、ユニット番号、料金などのアパートに関する基本的な情報を入力できます。次に、作成するアパートメントの数を入力できます。この情報はセッション変数に配置され、プレビューフォームが表示されます。したがって、たとえば、作成するアパートの数に5を入力した場合、テーブルに5つの行があり、それぞれにUnit Number、Rate、およびEnabledという見出しが付いています。次に、必要に応じて個々のアパートメントに変更を加え、[保存]をクリックします。
/app/models/apartment.rb
def preview
@count = session['count'].to_i
@mktg_apartment = []
1.upto(@count) do |i|
@mktg_apartment[i] = Apartment.new
@mktg_apartment[i].rate = session['tmp_rate']
@mktg_apartment[i].enabled = true
end
end
/app/views/preview.html.haml
=form_for @mktg_apartment, :url => {:action => 'save_preview', :method => 'post'} do
- 1.upto(@count) do |x|
text_field "mktg_apartment[#{x}]", :unit
text_field "mktg_apartment[#{x}]", :rate
text_field "mktg_apartment[#{x}]", :enabled
私はまだ実際にsaveメソッドを作成していません。私が持っているものを出します。ある時点では、最後に入力されたレコードのみが保存されますが、現時点ではすべて間違っていることはわかっています。
/app/model/apartment.rb
def save_preview
@mktg_apartment = Mktg::Apartment.new(params[:mktg_apartment])
respond_to do |format|
if @mktg_apartment.save
format.html { redirect_to mktg_apartments_path }
else
format.html { render action: "preview" }
end
end
end
私のpreview.html.hamlフォームで、@ mktg_apartmentをダンプし、次を参照します。
[nil, #<Mktg::Apartment id: nil, created_at: nil, updated_at: nil, unit: nil, rate: 1222.0, enabled: true>,
#<Mktg::Apartment id: nil, created_at: nil, updated_at: nil, unit: nil, rate: 1222.0, enabled: true>,
#<Mktg::Apartment id: nil, created_at: nil, updated_at: nil, unit: nil, rate: 1222.0, enabled: true>,
#<Mktg::Apartment id: nil, created_at: nil, updated_at: nil, unit: nil, rate: 1222.0, enabled: true>,
#<Mktg::Apartment id: nil, created_at: nil, updated_at: nil, unit: nil, rate: 1222.0, enabled: true>]
保存を押すとエラーが発生し、次のパラメータが投稿フォームに渡されます。
{"utf8"=>"✓",
"authenticity_token"=>"iGLdu/ZmulcLp4xZEU4a4iuxWV1opzNIyXcnZEQCtj8=",
"mktg_apartment"=>{"1"=>{"unit"=>"",
"rate"=>"",
"enabled"=>"0"},
"2"=>{"unit"=>"",
"rate"=>"",
"enabled"=>"0"},
"3"=>{"unit"=>"",
"rate"=>"",
"enabled"=>"0"},
"4"=>{"unit"=>"",
"rate"=>"",
"enabled"=>"0"},
"5"=>{"unit"=>"",
"rate"=>"",
"enabled"=>"0"}},
"commit"=>"Save",
"method"=>"post"}
したがって、プレビューメソッドで@mktg_apartmentの配列を設定しているのに、プレビュービューで正しくアクセスされていないようです。実際には、save_preview postメソッドに期待するように、プレビュービューがパラメーターを渡しているように見えます。
助けてください、私は壁に頭を打ちつけています。ありがとうございました...