在两个不同的部分想要传递两个变量

时间:2016-04-08 11:34:28

标签: jquery html ruby-on-rails ruby ruby-on-rails-3

我为用户提供了show.html.erb个文件 在这里我添加部分文件的详细信息为_details.html.erb 在详细页面我有部分_form.html.erb

现在我做了这样的代码。在show.html.erb

中有部分文件代码
user
@user_entry

<%= render :partial => "users/details" ,:locals => {:user => user } %>

_detail.html.erb

中有部分文件代码
<%= render :partial => "users/form" %>

我有两个user & @user_entry我希望@user_entry中的form变量部分我该怎么办?

如果有人知道的话,帮助我

谢谢。

2 个答案:

答案 0 :(得分:5)

试试这个。 在show.html.erb

User
@user_entry

<%= render :partial => "users/details" ,:locals => {:user => user,:user_entry => @user_entry } %>

而不是尝试访问user_entry中的_details.html.erb变量 文件。

答案 1 :(得分:4)

实例变量(前面带有@符号的变量)在渲染调用之前定义时可用于所有部分。

当您通过locals时,它们可作为本地变量使用,而不是转发&#34;随后的部分内容。

<强>控制器:

class FooController < ApplicationController
  def index
    @foos = Foo.all
  end
end

<强> FOOS / index.html.erb

Template: we have <%= @foos.count %>
<%= render('partial', locals: {foos: @foos, other: 'a value here'}) %>

<强> FOOS / _partial.html.erb

Partial: We have <%= foos.count %> and <%= other %>
<%= render('subpartial', locals: {foos: foos, other: 'another value here'}) %>

<强> FOOS / _subpartial.html.erb

Subpartial: We have <%= foos.count %> and <%= other %>