渲染部分UI元素

时间:2011-09-08 06:10:45

标签: ruby-on-rails ruby renderpartial

在rails中,我经常需要声明在许多模型中使用的部分。例如,有一个部分我想要一个包裹在按钮周围的表单,这样我就可以传入一个控制器,一个动作和一个对象,并将该对象发送到该控制器的动作。现在这不是我的任何模型所特有的。在模型的文件夹中声明这个部分文件(_processor_button.html.erb)似乎不合适。

你有什么建议放置这个文件的最佳位置,以及如何从那里调用它,你建议采用一种完全不同的方式来接近上面提到的例子吗?

2 个答案:

答案 0 :(得分:1)

我将常用的部分存储在views/shared/中并以这种方式调用它们:

render :partial => "/shared/partial_name"

答案 1 :(得分:1)

我总是把这些部分放在:app / views / shared /

假设部分喜欢;

... shared/_my_form.html.erb ...
<%= form_for(my_obj) do %>
...
...

然后在你的视图中用不同的“my_obj”

渲染这个部分
... posts/form.html.erb ...

<%= render :partial => "/shared/my_form", :locals => { :my_obj => @post } %>

或者喜欢:

... users/form.html.erb ...
<%= render :partial => "/shared/my_form", :locals => { :my_obj => @user} %>