【问题标题】:Is it possible include Nesta CMS into Rails3 application?是否可以将 Nesta CMS 包含到 Rails3 应用程序中?
【发布时间】:2011-04-21 12:23:32
【问题描述】:

我想将 Nesta CMS 应用程序“挂载”到 Rails3 应用程序上 这应该可能是因为 Nesta 是一个 Sinatra 应用程序,它应该是一个可机架安装的层,......但是你会怎么做呢? 你将从哪里开始?有没有人有这方面的经验?推荐的文档?

【问题讨论】:

    标签: content-management-system ruby-on-rails-3 blogs sinatra rack


    【解决方案1】:

    嘿卢卡。我一直想写这篇文章一两个月。您只需使用 Rails Metal 将 Nesta 安装为 Rack 应用程序。

    看看这个:

    http://railscasts.com/episodes/222-rack-in-rails-3

    您可以通过将 Nesta::App 称为 Nesta::App 在您的路线中引用它(我只在一周左右之前将允许您执行此操作的提交合并到 master 中,所以请确保您是与 github 上的最新代码保持同步)。为了实现这一点,您需要做的就是要求 Nesta 的 app.rb 文件。

    我自己还没有在 Rails 3 上尝试过这个,但我已经用 Rails 2 做了一段时间了。如果您有任何问题,请在邮件列表 (nesta@librelist.com) 上联系我。

    对于想知道如何使用 Rails 2.3 实现相同功能的人,我一直在使用如下代码(在 lib/nesta_metal.rb 中):

    require File.join(File.dirname(__FILE__), *%w[.. vendor nesta app])
    
    class NestaMetal
      def initialize(app)
        @app = app
      end
    
      def call(env)
        status, headers, response = Nesta::App.call(env)
        (status == 404) ? @app.call(env) : [status, headers, response]
      end
    end
    

    干杯,

    格雷厄姆

    【讨论】:

      【解决方案2】:

      这是我用来让它在我的应用上运行的代码:

      MyRailsApp::Application.routes.draw do
        mount MyNestaSite.new => "/blog"
        match '/' => "static#welcome" # and whatever other rails routes you want
      end
      

      当时它还需要来自 github 的最新版本的 Sinatra,因为通过 ruby​​gems 提供的版本在处理环境变量方面存在错误,因此我将其添加到了我的 Gemfile:

      gem "sinatra", :git => "http://github.com/sinatra/sinatra.git"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多