Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Rails布局在操作之间不更改_Html_Ruby On Rails_Caching_Layout - Fatal编程技术网

Html Rails布局在操作之间不更改

Html Rails布局在操作之间不更改,html,ruby-on-rails,caching,layout,Html,Ruby On Rails,Caching,Layout,我正在编写一个Rails应用程序。我想在索引页面的整个HTML标记中使用特定的样式,但其余页面应遵循应用程序布局。因此,在我的控制器中,我有: def index render layout: 'index_layout' end # All other actions follow this scheme def any_other_action end 索引布局具有更改样式的特定代码段: <!-- Index layo

我正在编写一个Rails应用程序。我想在索引页面的整个HTML标记中使用特定的样式,但其余页面应遵循应用程序布局。因此,在我的控制器中,我有:

    def index
        render layout: 'index_layout'
    end

    # All other actions follow this scheme
    def any_other_action
    end
索引布局具有更改样式的特定代码段:

    <!-- Index layout -->
    <html id="index_html">
    ...

    <!-- Application layout (goes normally) -->
    <html>
    ...

有人能告诉我什么可能会失败吗?我的直觉是关于缓存的,但我找不到任何能帮助我的答案。我的Ruby版本是2.5.1,rails版本是5.1.6。我认为获得客户布局的最简单方法是创建一个布局,其中控制器的名称为folder name,index.html.erb,以反映您的操作。

1)

2)


我希望这将有助于任何人与我提出的问题

问题是
turbolinks
gem。当您使用此gem创建链接时,它似乎只重新加载页面的主体。由于这个原因,html标记在通过链接重定向时没有更改,但在刷新时会更改。我所要做的就是在我的链接标签中添加下一个代码:

<%= link_to about_us_path, data: {turbolinks: false} %>

因此,布局将完全重新绘制,并应用所需的更改


谢谢大家的回答

也许这会有帮助:谢谢你的回答,@iGian,但问题不在于渲染错误的布局,正确的布局正在被渲染(正如服务器的输出所说),但它没有被重新绘制,或者重载编辑不是一个不同的控制器。这只是控制器中的一个特定操作。我已经创建了两个布局,并且(根据服务器)它们得到了正确的服务。但是,当我使用
link\u导航到
标记时,整个布局没有被重新绘制,但是当我刷新页面时,我猜它被完全重新绘制,并且行为是预期的
before_action custom_layout, only: :index

def custom_layout
    render 'layouts/index_layout'
end
layout :layout_by_resource

def layout_by_resource
   if true #just check as you want here. controller/path/actions etc...
     "index_layout"
   else
     "application"
   end
end
<%= link_to about_us_path, data: {turbolinks: false} %>