0

私はこのHAMLを持っています

-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

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)

この問題を引き起こしている要素は何か分かりますか?

ありがとう!

4

1 に答える 1

2

これは間違っているように見えます:

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

動作するために開示が属するモデルのインスタンスである必要があるサイドバー シンボルを使用してルートを生成しようとしているようです。

確かに知るのは難しいですが、おそらくこれがあなたが探しているものです:

= form_for(@disclosure), :url => [:sidebar, @disclosure] do |f|
于 2012-04-20T18:26:20.617 に答える