Ruby on rails 如何将一些参数传递给默认渲染方法?
我使用的是RubyonRails3.0.10,我想把一些参数传递给默认的渲染方法。也就是说,如果我有这样的代码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
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