我可以在show.html.erb中使用'javascript_include_tag'和`content_for(:head)`吗?

时间:2013-01-10 12:45:30

标签: ruby-on-rails ruby-on-rails-3

为什么会出现此错误?
我可以在show.html.erb中使用javascript_include_tagcontent_for(:head)吗? 我想把这行加载到<head>...</head>

中的js

如果我放<%= content_for(:head) do %>,则不会出现加载线“refresh_chat.js” 如果我删除<%= content_for(:head) do %>,则会显示加载行“refresh_chat.js”,但不会出现在<head>

视图/帖/ show.html.erb

1. <%= content_for(:head) do %>
2.   <%= javascript_include_tag "refresh_chat.js" %>
3. <% end %>   

3 个答案:

答案 0 :(得分:3)

它应该工作。请确保yield部分中的<head>

<head>
  ...
  <%= yield :head %>
</head>

然后

<% content_for(:head) do %>
  <%= javascript_include_tag "refresh_chat.js" %>
<% end %>

答案 1 :(得分:2)

您可能不想在部分中输出content_for块(<% content_for ...)。 content_for(:head)也不是一个神奇的功能。如果你想把它的内容放到头脑中,你必须在你的布局中做这样的事情:

<head>
  ...
  <%= yield(:head) if content_for?(:head) %>
</head>

答案 2 :(得分:0)

也许这是一个错字,但我认为你应该在content_for行中使用&lt;%而不是&lt;%=