ruby-on-rails - 每个 Action 的 Rails 布局?

标签 ruby-on-rails

我对某些操作使用不同的布局(主要是大多数 Controller 中的新操作)。

我想知道指定布局的最佳方法是什么? (我在同一个 Controller 中使用 3 个或更多不同的布局)

我不喜欢使用

render :layout => 'name'

我喜欢做

layout 'name', :only => [:new]

但我不能用它来指定 2 个或更多不同的布局。

例如:

当我在同一 Controller 中使用不同的布局名称和不同的唯一选项调用布局两次时,第一个将被忽略 - 这些操作不会显示在我指定的布局中。

注意:我使用的是 Rails 2。

最佳答案

您可以使用一种方法来设置布局。

class MyController < ApplicationController
  layout :resolve_layout

  # ...

  private

  def resolve_layout
    case action_name
    when "new", "create"
      "some_layout"
    when "index"
      "other_layout"
    else
      "application"
    end
  end
end

关于ruby-on-rails - 每个 Action 的 Rails 布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3025784/

相关文章:

css - 如何将模板与 Ruby on Rails 放在一起

ruby-on-rails - PG::UndefinedColumn:如果同一数据库用于在 Rails 中相互连接的两个不同项目,则出现错误

ruby-on-rails - 如何管理 AWS RDS 数据库连接?

ruby-on-rails - 为什么 Ruby 只运行一些测试而不运行其他测试?

android - RSolr::Error::Http - 400 错误请求 - 路径中缺少 solr 核心名称

ruby-on-rails - 预期 CSS "Home"返回一些 RSpec 问题

ruby-on-rails - 具有依赖项的可移植 Rails 应用程序

jquery - Rails 通过 jQuery Draggable Droppable 和 hide_field_tag 更新 has_many

ruby-on-rails - 在 Rails 3 View 中转义 Html

ruby-on-rails - 处理完请求后杀死 puma 线程