gpt4 book ai didi

ruby-on-rails - Rails 3,如何添加一个不使用与应用程序其余部分相同布局的 View ?

转载 作者:行者123 更新时间:2023-12-03 06:00:58 25 4
gpt4 key购买 nike

我找不到任何有关如何构建我的应用程序以允许同一 Controller 中的不同 View 使用完全不同的布局和样式表的文档或示例。

我们的应用程序是搭建起来的,然后我们使用漂亮的生成器来生成 View ,然后添加用于身份验证的设备。我们有两种模型的 View 和 Controller :小部件和公司。

我目前有一个布局:layouts/application.html.haml,我没有看到任何地方引用它,所以我假设(rails 新手)它始终按命名约定使用。

我现在需要在同一 Controller 中添加几个具有不同样式表和布局(例如,右上角没有登录/注销链接)的 View (针对移动浏览器)。

如何才能做到这一点?

最佳答案

默认情况下,layouts/application.html.haml(如果您不使用 haml,则为 .erb)。

事实上,布局文件可以按 Controller 或按操作设置,而不是按 View 、按 View 文件夹设置。

有几种情况:

更改所有 Controller 的默认布局文件(即使用 another.html.haml 而不是 application.html.haml)

class ApplicationController < ActionController::Base
layout "another"

# another way
layout :another_by_method
private
def another_by_method
if current_user.nil?
"normal_layout"
else
"member_layout"
end
end
end

更改某个 Controller 中的所有操作以使用另一个布局文件

class SessionsController < ActionController::Base
layout "sessions_layout"
# similar to the case in application controller, you could assign a method instead
end

更改操作以使用其他布局文件

def my_action
if current_user.nil?
render :layout => "normal_layout"
else
render :action => "could_like_this", :layout => "member_layout"
end
end

关于ruby-on-rails - Rails 3,如何添加一个不使用与应用程序其余部分相同布局的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5090084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com