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 %>