【发布时间】:2011-10-01 03:34:51
【问题描述】:
我正在使用 Ruby on Rails 3 来创建我的网络应用程序。
我不想为每个微小的部分模板创建一个模板文件,所以我尝试使用content_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
...
布局/application.html.erb
<!DOCTYPE html>
<html>
...
<body>
<%= yield %>
</body>
</html>
<%= render 'layouts/fragments', :formats => :erb %>
布局/_form.html.erb
<%= form_for(@entry) do |f| %>
...
<%= content_for :twitter_checkbox %> # it shows nothing
<% end %>
这种方式有什么问题? 还有其他更好的方法可以将多个部分模板写入一个文件吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 erb