2016-08-27 38 views
1

我試圖定義一個局部變量的form_for,像section 3.4.4的Rails的form_for局部變量

我能得到它使用一個實例變量的工作,但不能與本地一家。

這工作:

Controller.rb

@new_instance = @instance_creation.get_instance #gives a proper object 

視圖:

= render :partial => '/shared/instances_new' 

局部視圖:

<%= form_for (@new_instance) do |f| %> 

這不:

Controller.rb

@new_instance = @instance_creation.get_instance #gives a proper object 

視圖:

= render :partial => '/shared/instances_new', 
         :new_instance => @new_instance 

局部視圖:

<%= form_for (new_instance) do |f| %> 

錯誤:

undefined local variable or method `new_instance' for #<#<Class:0x007f8e27dd7b30>:0x007f8e27b0f100> 

我做錯了什麼?

回答

1

嘗試使對象作爲本地

= render :partial => '/shared/instances_new', :locals=>{:new_instance => @new_instance} 
+0

這是奇怪,是不是 「=渲染:局部=> '/共享/ instances_new',:new_instance => @new_instance」 一個當地人快捷? – Gaston

+0

http://api.rubyonrails.org/classes/ActionView/PartialRenderer.html沒有描述這樣的捷徑,所以我認爲它不是。 – Baradzed

+1

@Gaston提供':partial'鍵時,該快捷鍵不起作用。您還需要使用該路徑的快捷方式:'render'path/to/partial_view',new_instance:@ new_instance'。 – Tom