所以我的视图中有一个content_for
用于登录和会话控制器,当用户没有输入有效凭据时,我有render :new
。但是,当它render :new
时,我得到一个没有任何css或js的黑白页面。这就是我的content_for
看起来像
<% content_for :head do %>
<%= stylesheet_link_tag "user_sessions/new" %>
<%= javascript_include_tag 'user_sessions/new.onready' %>
<% end %>
当我执行render
时,是否有解决方法确保执行上述代码?
答案 0 :(得分:8)
我的猜测是你没有将content_for
包含在任何地方。在app/views/layouts/application.html.erb
(或您在此页面中使用的任何布局)中,请确保您拥有以下内容:
<head>
<!-- your regular head content goes here -->
<%= content_for :head %>
</head>
将块传递给content_for
时,块的内容将存储在别处使用。然后,在没有块的情况下调用content_for
将插入存储的内容。
有关详细信息,请参阅the docs for content_for
。
答案 1 :(得分:4)
<head><%= content_for :head %></head>
对我不起作用,但是
<head><%= yield :head %></head>
工作,我想这是做的权利
记住:yield
调用内容,而:head
是您放置在渲染视图中的content_for
参数,因此您可以将代码段放在应用程序的任何位置。你想要的HTML