2012-08-05 207 views
0

我渲染一個像這樣的部分視圖。如何將控制器中的變量傳遞給部分?

<%= render :partial => 'resources/positions', :controller => 'resources', 
         :action => 'this_is_a_test', 
         :locals => {:id_resource => 42} %> 

resources_controller.rb

def this_is_a_test 
    @test1 = "batman" 
    render :partial => 'positions' 
    end 

_positions.html.erb

<%= @test1 %> 

但可變@ TEST1是空的。你有什麼主意嗎 ?

+0

我不知道如果我理解你究竟叫什麼。如果在控制器中運行'this_is_a_test',則不會傳遞部分任何變量。實例變量不會被傳遞給部分。爲什麼你需要JS文件呢?它在哪裏被加載? – slhck 2012-08-05 15:50:19

+0

slhck:我刪除了js。 – user1560922 2012-08-05 16:50:40

回答

1
def this_is_a_test 
    render :partial => 'positions', :locals => { :test1 => "batman" } 
end 

,改變_position.html.erb

<%= test1 %> 
+0

你是否明白爲什麼OP會需要JavaScript或將它包含在問題中? – slhck 2012-08-05 16:27:35

+0

sorens您的意思是<%= @test1 %>或<%= local_assigns [:test1]%>? – user1560922 2012-08-05 16:30:32

+0

@ user1560922不,test1應該足夠了。你可以使用'local_assigns'來測試局部變量是否真的存在,例如'如果local_assigns.has_key?(:test1)'。 – slhck 2012-08-05 16:52:15

相關問題