Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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
Css 安装Bootstrap gem后,如何覆盖/更改Ruby on Rails spree应用程序的布局?_Css_Ruby On Rails_Ruby_Twitter Bootstrap_Deface - Fatal编程技术网

Css 安装Bootstrap gem后,如何覆盖/更改Ruby on Rails spree应用程序的布局?

Css 安装Bootstrap gem后,如何覆盖/更改Ruby on Rails spree应用程序的布局?,css,ruby-on-rails,ruby,twitter-bootstrap,deface,Css,Ruby On Rails,Ruby,Twitter Bootstrap,Deface,我有一个Spree Commerce应用程序,通过添加 gem 'spree_bootstrap', github: 'jdutil/spree_bootstrap' 到档案 现在在主页上,我有了所有熟悉的引导div,如和 我是Rails新手,我想通过添加自己的自定义导航栏和其他调整来更改布局母版页。不幸的是application.html.rb实际上是一个空页面,我不认为这是一个可以进行更改的页面 我的问题是:如何覆盖或更改标准div值?我没有本地文件。我听说过使用污损作为工具,但我不知道如

我有一个Spree Commerce应用程序,通过添加

gem 'spree_bootstrap', github: 'jdutil/spree_bootstrap'
到档案

现在在主页上,我有了所有熟悉的引导div,如

我是Rails新手,我想通过添加自己的自定义导航栏和其他调整来更改布局母版页。不幸的是application.html.rb实际上是一个空页面,我不认为这是一个可以进行更改的页面

我的问题是:如何覆盖或更改标准div值?我没有本地文件。我听说过使用污损作为工具,但我不知道如何使用它


我希望这里的人能提供一些关于更改标准引导Spree应用程序的更多信息。

创建文件
app/views/Spree/layouts/Spree\u application.html.erb
。复制并粘贴内容,然后根据需要进行编辑:)

对可能要重新设置样式的任何其他Spree视图和部分重复此操作。如果您想知道需要创建的路径&某个视图或部分视图的内容,请查看他们的
app/views/spree
文件夹


在看到任何更改之前,您可能需要重新启动服务器。

创建文件
app/views/spree/layouts/spree\u application.html.erb
。复制并粘贴内容,然后根据需要进行编辑:)

对可能要重新设置样式的任何其他Spree视图和部分重复此操作。如果您想知道需要创建的路径&某个视图或部分视图的内容,请查看他们的
app/views/spree
文件夹


在看到任何更改之前,您可能需要重新启动服务器。

首先,我认为这个问题与其他几个SO问题重复。不过,我昨天确实处理过这个问题,所以我想我会给出一个答案

您应该查看defacegem(Spree使用什么来覆盖视图)。下面是一个关于如何替换
内容的示例,假设文件是
app/views/spree/shared/\u nav\u bar.html.erb
。请注意,您必须找到要使用的选择器实际所在的文件:

# app/overrides/my_override.rb
Deface::Override.new(virtual_path: "spree/shared/nav_bar",
                     name: "my_navbar",
                     replace: "ul#main-nav-bar") do
  <<-HTML
  <nav class='navbar navbar-default navbar-fixed-top'>
    <div class='container'>
      ...
    </div>
  </nav>
  HTML
end
#app/overrides/my_override.rb
Deface::Override.new(虚拟路径:“spree/shared/nav_bar”,
名称:“我的导航栏”,
替换:“ul#主导航杆”)do

首先,我认为这个问题与其他几个SO问题重复。不过,我昨天确实处理过这个问题,所以我想我会给出一个答案

您应该查看defacegem(Spree使用什么来覆盖视图)。下面是一个关于如何替换
内容的示例,假设文件是
app/views/spree/shared/\u nav\u bar.html.erb
。请注意,您必须找到要使用的选择器实际所在的文件:

# app/overrides/my_override.rb
Deface::Override.new(virtual_path: "spree/shared/nav_bar",
                     name: "my_navbar",
                     replace: "ul#main-nav-bar") do
  <<-HTML
  <nav class='navbar navbar-default navbar-fixed-top'>
    <div class='container'>
      ...
    </div>
  </nav>
  HTML
end
#app/overrides/my_override.rb
Deface::Override.new(虚拟路径:“spree/shared/nav_bar”,
名称:“我的导航栏”,
替换:“ul#主导航杆”)do

伟大的现在我意识到谣言是真的:所有页面都来自git,只有当你想更改它们时,你才能在本地添加它们。谢谢问题:现在我在
app/views/spree/products/_image.html.erb
中发现一个错误。我想更改那里的代码,因此我在本地添加了一个具有相同路径和名称的文件,其中包含所需的新代码。然后我部署了它,当我ssh到服务器中时,我看到了这个文件。但在网站上,我仍然得到同样的错误。由于模板包含的痕迹表明它来自
app/views/spree/products/show.html.erb
,我也将该文件更改为它,但我仍然在服务器上看到相同的代码。如何修复此问题?任何gem/引擎都存储在本地-不是在项目文件夹中,而是在gems文件夹中。你只需要用你自己想要的行为覆盖gem文件:)这就行了,因为你的项目文件优先于gem/引擎。
app/views/spree/products/_image.html.erb
?@Bursos这就是Rails引擎的工作方式。我建议的解决方案效果很好,因为Spree也使用了partials,所以您也可以只替换它们视图的一小部分。正如另一个答案所暗示的,混合HTML和Ruby在我看来并不是最好的做法,尤其是如果你拥有大量的HTML和Ruby(我确实知道Spree使用了
deface
,但Spree也是Rails引擎)。太棒了。现在我意识到谣言是真的:所有页面都来自git,只有当你想更改它们时,你才能在本地添加它们。谢谢问题:现在我在
app/views/spree/products/_image.html.erb
中发现一个错误。我想更改那里的代码,因此我在本地添加了一个具有相同路径和名称的文件,其中包含所需的新代码。然后我部署了它,当我ssh到服务器中时,我看到了这个文件。但在网站上,我仍然得到同样的错误。由于模板包含的痕迹表明它来自
app/views/spree/products/show.html.erb
,我也将该文件更改为它,但我仍然在服务器上看到相同的代码。如何修复此问题?任何gem/引擎都存储在本地-不是在项目文件夹中,而是在gems文件夹中。你只需要用你自己想要的行为覆盖gem文件:)这就行了,因为你的项目文件优先于gem/引擎。
app/views/spree/products/_image.html.erb
?@Bursos这就是Rails引擎的工作方式。我建议的解决方案效果很好,因为Spree也使用了partials,所以您也可以只替换它们视图的一小部分。正如另一个答案所暗示的那样,混合HTML和Ruby在我看来不是最好的做法,特别是如果你有大量的HTML和Ruby(我确实知道Spree使用了
deface
,但是