Ruby 如何将变量从控制器传递到局部控制器?

Ruby 如何将变量从控制器传递到局部控制器?,ruby,ruby-on-rails-3,controller,Ruby,Ruby On Rails 3,Controller,我会像这样渲染局部视图 <%= render :partial => 'resources/positions', :controller => 'resources', :action => 'this_is_a_test', :locals => {:id_resource => 42} %> _positions.html.erb <%= @

我会像这样渲染局部视图

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

<%= @test1 %>

但是变量@test1是空的。你知道吗

def this_is_a_test
  render :partial => 'positions', :locals => { :test1 => "batman" }
end
并将
\u position.html.erb
更改为

<%= test1 %>


我不确定我是否明白你到底在说什么。如果在控制器中运行
此测试是\u a\u测试
,则不会传递任何变量的部分。实例变量将不会传递给分部变量。为什么需要JS文件呢?它是从哪里加载的?slhck:我删除了js。你知道为什么OP需要JavaScript或将其包含在问题中吗?sorens你是说还是?@user1560922不,
test1
应该足够了。您可以使用
local\u assigns
测试局部变量是否确实存在,例如
if local\u assigns.has\u key?(:test1)
。未定义的局部变量或方法“test1”。当我放置@user1560922时,您需要调试到底发生了什么。也许你的部分不是你认为的那样?如果将静态文本放在部分中,当您在web浏览器中获得该路径时,是否会看到它?分部与控制器相关,因此如果在
resources\u controller.rb
中执行此操作,分部必须位于
app/views/resources/\u positions.html.erb
中。如果不是这样,则需要指定控制器可以在其中找到该部分的路径。
<%= test1 %>