Ruby on rails 如何将一些参数传递给默认渲染方法?

Ruby on rails 如何将一些参数传递给默认渲染方法?,ruby-on-rails,ruby,ruby-on-rails-3,parameters,rendering,Ruby On Rails,Ruby,Ruby On Rails 3,Parameters,Rendering,我使用的是RubyonRails3.0.10,我想把一些参数传递给默认的渲染方法。也就是说,如果我有这样的代码 def show ... respond_to do |format| format.html # This, by default, renders the 'show.html.erb' file end end 我想传递一些参数,可能是这样的(注意:以下不起作用) 因此,在show.html.erb模板中,我可以制作如下内容: <%= cont

我使用的是RubyonRails3.0.10,我想把一些参数传递给默认的渲染方法。也就是说,如果我有这样的代码

def show
  ...

  respond_to do |format|
    format.html # This, by default, renders the 'show.html.erb' file
   end
end
我想传递一些参数,可能是这样的(注意:以下不起作用)

因此,在
show.html.erb
模板中,我可以制作如下内容:

<%=
  content[:value]
  # => 'Sample value'
%>
我该怎么做呢?

设置一个实例变量怎么样

#show.html.erb

通常,当我们处理操作时,
show.html.erb
是一个
操作
视图,而不是
部分
视图,我们通过控制器上的实例变量传递参数,例如

def show
  ...
  @foo = "bar"
  respond_to do |format|
    format.html
   end
end
现在在
app/views/foos/show.html.erb
文件中,我们可以访问
@foo

<%= render :partial => "foo_details", :object => @foo %>
渲染部分时,有几种方法可以传递参数:

默认情况下,这将呈现部分
app/views/foos/_foo.html.erb
,因为它知道
@foo
属于
foo
类型。在其中,您将可以自动访问
foo
变量

<%= render @foo %>
最后,主要与您的问题相关,我们将呈现一个名为
\u foo\u things.html.erb的部分,并将其传递给一些局部变量。在本例中,您可以使用一个名为
title
的局部变量

<%= render :partial => "foo_things", :locals => {:title=> "Test 123"} %>
“foo_things”,:locals=>{:title=>“test123”}%>

我希望这能回答你的问题。

你可以完全按照你所描述的去做。我在“渲染模板”的标题下查找了它,并亲自尝试了一下。你每天都会学到新东西

你可以简单地做

def show
  respond_to do |format|
    format.html { render :locals => { :content => { :value => 'Sample value' } } }
  end
end

我会考虑为什么需要这样做,而不是使用实例变量。也许有更好的方法。

我认为问题(也许)中描述的方法比您提出的方法更好。。。有什么理由按照你的建议去做吗?你有什么建议?
<%= render @foo %>
<%= render :partial => "foo_details", :object => @foo %>
<%= render :partial => "foo_things", :locals => {:title=> "Test 123"} %>
def show
  respond_to do |format|
    format.html { render :locals => { :content => { :value => 'Sample value' } } }
  end
end