2012-02-10 1 views
0

(콜라주 모델이 없습니다. 문제가 될 수 있습니까?)아름다운 형태 (HAML, Rails, Formtastique, Mongoid)가 잘못된 점은 무엇입니까?

HAML, Rails 및 Mongoid에서 양식을 만들려고하고 있으며 각 필드의 이름을 올바르게 지정할 수 없습니다.

콜라주는 15 개의 Works 그룹으로, "slide_number"라는 열이 있습니다.이 열은 콜라주에있는 슬라이드 번호이거나 그렇지 않은 경우에는 nil입니다.

은 (_form.html.haml에서) 선이 나에게 문제를주고 있습니다 :

= f.input "slide_"+(index+1).to_s, :collection => Work.all.map{|w| [w.name, w._id]} 

나는 양식이 렌더링되는 다음 줄을 있지만, 모든 드롭 다운 때 I "하나"등을 표시하는 경우 양식을 제출하십시오. 모든 양식의 이름이 같기 때문에 마지막 양식의 정보 만 가져옵니다.

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 :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 

이 내가 오류입니다. f.input을 수행 한 후 첫 번째 애트리뷰트가 무엇인지 이해하지 못한다.

+0

당신은 콜라주를 기반으로 양식을 확인하려면이 콜라주 모델을 사용하는 것이 더 쉽습니다. – zeeraw

답변

관련 문제