1

我的文章控制器的所有表单(新的和显示的)都忽略了布局(article.html.erb),而我的所有其他控制器(例如列表)都在应用布局(lists.html.erb)。

我已经在我的 CSS 旁边实现了 SASS,目前我在 /assets/stylesheets/style.css.scss 中定义了我的所有 CSS。

我可以对 CSS 和 HTML 结构进行更改,它们会立即应用于我的应用程序。

我正在使用开发环境并运行 ruby​​ 1.9.3p125 和 rails 3.2.1。

谁能建议为什么会这样?

Lists 控制器的 HTML 布局是...

<!DOCTYPE html>
<html>
<head>
  <title>Inspire</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>
    <div id="home_container">
      <div id="header">
        <div id="home_user-space">
          <% if current_user %>
              <%= image_tag avatar_url(current_user), :class =>'floatleft' %>
              <%= link_to current_user.name.capitalize,user_path(:id =>current_user.name), :class =>'user-name' %>
          <% end %>
        </div>
      </div>
      <div id="navigation">
        <%= render 'layouts/navigation' %>
        <ul>
          <li><%= link_to "Log out", signout_path %></li>
          <li><%=  link_to "Your home page", home_path(:id => current_user.name), :class => 'user-name' %></li>
        </ul>

      </div>
      <div id="home_content-container">
        <div id="home_left-side">
          <%= render 'layouts/home_left_side' %>
        </div>
        <div id="home_content">
          <%= yield %>
        </div>
        <div id="home_right-side">
          <%= render 'layouts/home_right_side' %>
        </div>
      </div>
      <div id="footer">
        <%= render 'layouts/footer' %>
      </div>
    </div>
</body>
</html>

我的文章控制器的布局是......

<!DOCTYPE html>
<html>
<head>
  <title>Inspire</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>
<div id="home_container">
  <div id="header">
    <div id="home_user-space">
      <% if current_user %>
          <%= image_tag avatar_url(current_user), :class =>'floatleft' %>
          <%= link_to current_user.name.capitalize,user_path(:id =>current_user.name), :class =>'user-name' %>
      <% end %>

    </div>
  </div>
  <div id="navigation">
    <%= render 'layouts/navigation' %>
    <ul>
      <li><%= link_to "Log out", signout_path %></li>
    </ul>
  </div>
  <div id="home_content-container">
    <div id="home_left-side">
      <%= render 'layouts/home_left_side' %>
    </div>
    <div id="home_content">
      <%= yield %>
    </div>
    <div id="home_right-side">
      <%= render 'layouts/home_right_side' %>
    </div>
  </div>
  <!--todo what about the footer-->
  <div id="footer">
    <%= render :partial => 'layouts/footer' %>
  </div>
</div>
</body>
</html>
4

2 回答 2

1

在您的文章控制器中确保您拥有:

# app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
  layout "article"
  #...
end

只是一个观察,但除了一些空白之外,您的两个布局是相同的。为什么?复制/粘贴错误?如果没有,这就引出了一个问题:你怎么知道文章布局没有被使用?您可以查阅您的开发服务器日志以查看正在使用的布局。

另外,也许您已经设置了资产管道来编译开发中的资产?还是跑bundle exec rake assets:precompile?如果您有,请删除编译目录/public/stylesheets/compiled,进行更改,然后在浏览器中刷新您的应用程序。

如果您的布局基本相同,您可能希望利用嵌套布局。它们允许您简单地定义一个布局app/views/layouts/application.html.erb,并根据控制器或操作的需要替换其中的一小部分。

于 2012-09-22T17:48:39.640 回答
0

您基本上是自己给出解决方案:您说对于 List 控制器,布局文件是lists.html.erb(复数)但对于 Article 控制器是article.html.erb(单数)

命名很重要:)

希望有帮助。

于 2012-09-22T17:28:33.870 回答