2012-04-20 64 views
0

我有这样的HAMLHAML - 不知道为什么编译错误发生

-content_for :primary_content do 
    #available-disclosures-container 
    .message-container.information-container 
     %h3=(t "headings.influencers.disclosures.new") 
     %p=raw((t "influencers.instructions.disclosures.new")) 
    =render "sidebar/disclosures/list", :disclosures => Disclosure.basics, :show_link => true, :selectable => true, :usable => false 

    #disclosure-form-container{:style => "display:none;"} 
    = form_for([:sidebar,@disclosure], :html => {:id => "disclosure-form", :remote => true}) do |f| 

我不知道为什么,但最后一行:

= form_for([:sidebar,@disclosure], :html => {:id => "disclosure-form", :remote => true}) do |f| 

导致此错误:

undefined method `model_name' for NilClass:Class 

and

6:  =render "sidebar/disclosures/list", :disclosures => Disclosure.basics, :show_link => true, :selectable => true, :usable => false 
7: 
8: #disclosure-form-container{:style => "display:none;"} 
9:  = form_for([:sidebar,@disclosure], :html => {:id => "disclosure-form", :remote => true}) do |f| 
10:  %p 
11:   =f.label :display_as, (t :select_disclosure_type) 
12:   =f.select :display_as, options_from_collection_for_select(Disclosure.basics, :display_as, :name, f.object.display_as) 

任何想法是什么元素导致这个问题?

谢谢!

+0

是不是因为@disclosure对象,我莫名其妙地需要让系统知道它的? – Awesomeness 2012-04-20 18:21:32

+0

检查你的控制器。它是否设置了@ @披露变量?如果没有,那么你是对的。 – jdoe 2012-04-20 18:33:03

回答

2

这看起来错:

= form_for([:sidebar, @disclosure]) do |f| 

它看起来就像你正在试图通过使用将需要披露哪些属于为了工作模型的实例侧边栏符号生成路线。

很难确切知道,但也许这是你在找什么:

= form_for(@disclosure), :url => [:sidebar, @disclosure] do |f| 
相关问题