【问题标题】:What is the proper way to link to a refinery page from a custom layout?从自定义布局链接到炼油厂页面的正确方法是什么?
【发布时间】:2013-11-14 02:50:36
【问题描述】:

我想从自定义布局链接到在 RefineryCMS 中的页面下创建的页面。我知道我可以对链接进行硬编码,但如果它在站点结构中移动,我希望能够灵活地跟随页面。

例如,如果网站以这样的结构开始:

|- Join Our Team
|- About Us
   |- History

客户在 About us 下加入我们的团队:

|- About Us
   |- History
   |- Join Our Team

并且加入我们的团队是在自定义模板中链接的,该链接应该如何编码,以便在移动时不会中断?

【问题讨论】:

    标签: ruby-on-rails refinerycms


    【解决方案1】:

    您应该能够通过运行bundle exec rake routes 查看您的路线(及其各自的名称)。你看到那里有炼油厂路线吗?

    【讨论】:

    • 每个页面都通过页面路由运行,因此您没有每个页面的单独路由,或者至少这是我理解 RefineryCMS 工作原理的方式。
    【解决方案2】:

    您需要一些独特的方式来识别页面。是Refinery::Page.find(1)吗?还是Refinery::Page.where(slug: 'foo').first?请记住,当页面被“移动”或编辑时,标签、标题和内容可能会发生变化。

    一旦你知道你想要哪个页面并将其保存在@target_page,那么它就是link_to 'Page', @target_page.url

    【讨论】:

    • 我可以通过Refinery::Page.by_title("Agriculture") 找到该页面,但是当我尝试获取url_marketable 时会抛出错误undefined method 'url_marketable' for ...。将任何内容分配给@page 将覆盖当前页面。我正在使用 copywriting 引擎测试一种新方法。这至少应该允许管理员更新布局中的链接。
    • 变量名当然可以是任何你想要的。我已经在答案中更改了它,所以它不会发生冲突。
    猜你喜欢
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 2014-05-04
    相关资源
    最近更新 更多