将页面添加到Spree

时间:2013-01-15 12:25:21

标签: ruby-on-rails ruby ruby-on-rails-3.2 e-commerce spree

我正在使用Spree开发一个应用程序,我想在spree框架中为我的应用程序添加基本上静态的页面。例如,我希望有一个页面使用我已经为Spree设计的布局(包括搜索,用户信息等内容),并在spree中列出两个不同类别的产品及其链接。我尝试了spree-static-content扩展,但当前的版本似乎有1.3.1版本的狂欢有很多错误,因为它是“静态的”据我所知,我无法添加ruby标签等身体内容。

我不确定如何使用deface进行此操作,据我所知,添加页面并向不同的控制器添加路由意味着我无法使用从Spree控制器检索信息的当前布局。我也试过在spree控制器中简单地为页面添加一个新的定义,但这也没有用,这意味着我必须使用静态版本的控制器文件,这会在Spree更新时导致问题。

有没有人知道如何在现有的Spree商店中添加新的网页浏览量?

谢谢!

3 个答案:

答案 0 :(得分:1)

有一个spreecommerce扩展spree_static_content,用于管理来自管理员的静态页面。

此扩展程序允许您:

  • 添加和管理静态页面,例如“关于”页面。
  • 显示静态页面,而不是现有的动态页面,例如主页,产品页面和分类页面。

使用admin选项卡中的“Pages”选项,可以将静态页面添加到Spree安装中。页面内容可以 直接从数据库中提取,作为单独的布局文件或呈现为部分文件。

在admin选项卡中,使用'New page'选项创建一个新的静态页面。

title,slug,body和meta字段将在加载时替换各自的页面元素。标题,slu and和 body元素都是必填字段。

在没有指定布局/部分的情况下提供的正文文本将在spree_application布局中加载 它是从数据库中提取的。

布局和部分渲染

要在没有spree_application布局的情况下呈现整个页面,请指定布局文件的相对路径(例如, 热潮/布局/ layout_file_name)。此文件不会以下划线为前缀,因为它是布局,而不是部分。

要渲染部分,请在布局文件名中指定路径,然后选中“将布局渲染为部分”选项。该 布局区域中指定的路径不会有下划线,但在文件名中将需要它。

另请注意render_snippet帮助程序的可用性,该帮助程序通过其slug查找页面并呈现原始页面 身体任何地方的身体。

选项

使用“显示在”复选框指定是否在页眉,页脚或侧栏中显示页面链接。该 位置设置会改变它们出现的顺序。

最后,使用“可见”复选框切换可见性。如果未选中,则该页面将不可用。

答案 1 :(得分:0)

通过Deface覆盖很容易满足您的要求。只需看一下默认布局模板spree_application.html.erb,然后执行Deface的replace,insert_,或者使用就地代码替换/插入,或者根据需要生成特定的视图和模型,并编写代码来渲染它们。这样,您可以完全自定义布局,同时保持和使用默认的Spree代码。

答案 2 :(得分:0)

一种选择是将Spree Engine安装在除根目录之外的其他位置。

Rails.application.routes.draw do

  mount Spree::Core::Engine, at: '/shop'


end

然后,您可以根据需要设置一条根路径,并使用标准导轨方式或使用诸如high_voltage gem之类的内容来添加其他页面。