2012-08-05 201 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

相关问题