【问题标题】:Adding pages to Spree将页面添加到 Spree
【发布时间】:2013-01-15 12:25:20
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

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


【解决方案1】:

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

这个扩展可以让你:

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

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

在管理选项卡中,使用“新页面”选项创建一个新的静态页面。

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

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

布局和部分渲染

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

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

还要注意 render_sn-p 助手的可用性,它通过 slug 找到页面并呈现原始页面 身体在你视野中的任何地方。

选项

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

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

【讨论】:

  • 这里非常不鼓励仅链接的答案,因为这些链接将来可能会失效。我建议您使用您引用的来源中的引用来编辑您的答案。
【解决方案2】:

使用 Deface 覆盖很容易满足您的要求。只需查看默认布局模板spree_application.html.erb 并执行 Deface 的替换、插入_,无论是使用就地代码替换/插入,还是在需要时生成特定视图和模型并编写代码来呈现它们。这样您就可以完全自定义布局,同时保留和使用默认的 Spree 代码。

【讨论】:

  • Deface 仅修改现有视图。发布者想要添加新视图。
【解决方案3】:

一种选择是将 Spree Engine 安装在根目录以外的位置。

Rails.application.routes.draw do

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


end

然后,您可以根据需要设置根路由,并使用标准 rails 方式添加其他页面或使用类似 high_voltage gem 之类的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多