gpt4 book ai didi

ruby-on-rails - 应用程序布局中的 Rails 条件侧边栏

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

以下是我的应用程序布局文件

  .container_12.clearfix
= render :partial => 'shared/flashes'

.grid_8
= render :partial => 'shared/search'
= yield
.grid_4
= yield(:sidebar)

它必须有网格,一个用于内容,另一个用于侧边栏。
现在我正在创建一个登录页面,我不想在其中显示我的侧边栏(只是单个网格。
我可以简单地使用 .grid_12 div 作为单个网格创建新布局。

但这给我留下了 2 个应用程序布局。
如何使相同的应用程序布局有条件产生侧边栏?

如果有侧边栏,它会和上面一样
否则只有一个 .grid_12 像下面的
  .container_12.clearfix
= render :partial => 'shared/flashes'
.grid_12
= render :partial => 'shared/search'
= yield

最佳答案

您可以检查 :sidebar 是否有内容如果为真,则存在并呈现侧边栏。
Rails 2.3.5 将有一个 content_for?方法。同时,您可以使用我的Helperful gem 。

- if has_content?(:sidebar)
.grid_8
= render :partial => 'shared/search'
= yield
.grid_4
= yield(:sidebar)
- else
.grid_12
= render :partial => 'shared/search'
= yield

否则,您可以假设如果 :sidebar == false 则没有侧边栏。
  def sidebar(enable = true, &block)
if enable
content_for :sidebar, &block
else
@fullpage = true
end
end

def fullpage?
!!@fullpage
end

- if fullpage?
.grid_12
= render :partial => 'shared/search'
= yield
- else
.grid_8
= render :partial => 'shared/search'
= yield
.grid_4
= yield(:sidebar)

更新:

如果您使用的是 Rails 3.x,请检查 answer to a similar question为正确的解决方案。上面的解决方案不适用于 Rails 3。

关于ruby-on-rails - 应用程序布局中的 Rails 条件侧边栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1791938/

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