Ruby on rails 如何将多个部分模板合并到一个文件中?

Ruby on rails 如何将多个部分模板合并到一个文件中?,ruby-on-rails,ruby-on-rails-3,erb,Ruby On Rails,Ruby On Rails 3,Erb,我正在使用RubyonRails3创建我的web应用程序。 我不想为每个微小的部分模板创建一个模板文件,所以我尝试使用content\u for方法将它们合并到一个文件中,但不起作用 我的ERB模板文件如下所示 layout/_fragments.html.erb:包含部分模板的内容 <% content_for :twitter_checkbox do -%> <% can_post_twitter = current_user && current_us

我正在使用RubyonRails3创建我的web应用程序。 我不想为每个微小的部分模板创建一个模板文件,所以我尝试使用
content\u for
方法将它们合并到一个文件中,但不起作用

我的ERB模板文件如下所示

layout/_fragments.html.erb:包含部分模板的内容

<% content_for :twitter_checkbox do -%>
  <% can_post_twitter = current_user && current_user.twitter_oauth %>
  <% label_text = can_post_twitter ? "Post to Twitter" : "Set up your Twitter account" %>
  <%= label_tag :twitter, label_text %>
  <%= check_box_tag :twitter, 0, false, :disabled => !can_post_twitter %>
<%- end %>

<% content_for :other_content_of_partial_template do -%> # content of another partial template
...

!可以发布推特吗%>
#另一部分模板的内容
...
layouts/application.html.erb

<!DOCTYPE html>
<html>
  ...
  <body>
    <%= yield %>
  </body>
</html>
<%= render 'layouts/fragments', :formats => :erb %>

...
:erb%>
布局/_form.html.erb

<%= form_for(@entry) do |f| %>
  ...
  <%= content_for :twitter_checkbox %> # it shows nothing
<% end %>

...
#什么也看不出来
这样有什么不对?
还有其他更好的方法将多个部分模板写入一个文件吗?

您在第二个代码段中缺少了告诉Rails显示返回文本的
=
符号

<%= form_for(@entry) do |f| %>
  ...
  <%= content_for :twitter_checkbox %> # Note <%= - it should now show stuff
<% end %>

...

#注意我想在主布局有机会运行
\u片段
部分之前,您已经运行了
\u表单
部分,因此当您显示片段时,它们尚未创建

动作在布局之前呈现,而不是在布局之后呈现。从您的操作而不是从布局调用
\u片段
,应该可以明确这是否是问题所在。至少,我相信是这样;-)