나는 하루 동안이 작업을 해왔으며 누군가가 나를 도울 수 있기를 바랍니다. 나는 루비/레일을 처음 접했고 나는 가까워지고 있다고 생각한다.레일즈 3은 단일 모델 및 방법으로 여러 레코드 항목을 만듭니다.
나는 그것이 가능한 경우 단위 수, 속도와 같은 아파트에 대한 기본 정보를 입력 할 수 있지만보기가 있습니다. 그런 다음 생성하려는 아파트 수를 입력 할 수 있습니다. 이 정보는 세션 변수에 저장되며 미리보기 양식이 표시됩니다. 예를 들어, 아파트 수에 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
난 정말 내 저장 방법은 아직 생성하지 않습니다. 나는 내가 가지고있는 것을 내놓을 것입니다. 한 시점에서 마지막으로 입력 한 기록 만 저장 하겠지만,이 시점에서 모두 잘못되었습니다. 내 preview.html.haml 양식에서 /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
나는 @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"}
그래서 나는 p 내 미리보기 방법에서 @mktg_apartment의 배열이 내 미리보기에서 올바르게 액세스되지 않습니다. 사실 내 미리보기는 save_preview post 메서드에서 예상하는대로 매개 변수를 전달하는 것처럼 보입니다.
어떤 도움을 주시겠습니까. 저는 벽에 머리를 때리고 있습니다. 감사합니다 ...
좋아요. 그렇다면 건물 모델에 대한 정보를 담고있는 건물 모델을 만든 다음 건물 has_many 아파트를 만드는 것과 같은 작업을 수행하십시오. 그게 내 유일한 것인가 아니면이 일을하는 가장 간단한 방법일까요? 더 이상 나는 당신이 옳다고 생각합니다. 고맙습니다! –
이것은 일을하는 가장 단순하고 모범 사례입니다. 모델링하기가 너무 어렵다면 분리 된 모델로 분할해야 할 가능성이 높습니다. – map7