0
(我沒有拼貼模型,這可能是問題嗎?)我美麗的形式(HAML,Rails,Formtastique,Mongoid)有什麼問題?
我試圖在HAML,Rails和Mongoid中創建一個表單,我無法得到每個字段的命名權。
拼貼畫是一組15個作品,作品有一個名爲「slide_number」的列,如果它們在拼貼中,則爲幻燈片編號,如果不是,則爲零。
這是(在_form.html.haml)線這是給我找麻煩:
= f.input "slide_"+(index+1).to_s, :collection => Work.all.map{|w| [w.name, w._id]}
如果我做了以下行的形式呈現,但所有的下拉列表中被標記爲「一」,當我提交表格我只從最後一個表格獲取信息(因爲所有信息都是相同的)。
= f.input :one, :collection => Work.all.map{|w| [w.name, w._id]}
collage_controller.rb
def edit
@collage = Work.excludes(:slide_number => nil).order_by([:slide_number, :asc])
@work = Work.all.order_by([:slide_number, :asc])
slides = Array.new
15.times do |index|
if Work.where(:slide_number => index+1).first
slides << Work.where(:slide_number => index+1).first.id
else
slides << nil
end
@slides= slides
end
end
_form.html.haml
= semantic_form_for :collage do |f|
- @slides.each_with_index do |slide, index|
= f.input "slide_"+(index+1).to_s, :collection => Work.all.map{|w| [w.name, w._id]}
.actions
= f.commit_button
這是我的錯誤:
NoMethodError in Collage#edit
Showing /Users/nickgoddard/codebase/subrosa/app/views/collage/_form.html.haml where line #7 raised:
undefined method `slide_1' for []:Array
任何幫助非常讚賞。我真的不明白f.input之後的第一個屬性是應該做什麼的。
如果你想基於拼貼的形式會更容易有一個拼貼模式。 – zeeraw 2012-02-14 12:55:57