使用Rails 3 gem Manifesto

时间:2010-11-23 14:24:05

标签: ruby-on-rails-3

我正在尝试使用名为Manifesto的gem来使用HTML5清单函数。我坚持使用说明。我无法弄清楚这些设置应该去哪里。

有什么想法吗?也许是更好的宝石?

https://github.com/johntopley/manifesto#readme

感谢所有人的帮助!

1 个答案:

答案 0 :(得分:1)

您可以将设置放在config/initializers/下的文件中。使用信息名称(如manifesto.rb)。但是,您不需要具有基本用法的配置。

Gemfile文件中,添加:

gem 'manifesto'

然后通过bundle安装:

bundle install

创建文件app/controllers/manifest_controller.rb

class ManifestController < ApplicationController
  def show
    headers['Content-Type'] = 'text/cache-manifest'
    render :text => Manifesto.cache, :layout => false
  end
end

config/routes.rb中添加:

match '/manifest' => 'manifest#show'

重新启动您的应用并在http://localhost:3000/manifest

查看结果

您可以将选项直接传递给Manifesto.cache,如:

# change
render :text => Manifesto.cache, :layout => false
# to
render :text => Manifesto.cache(:directory => './mobile', :compute_hash => false), :layout => false

或者使用YAML文件和初始化程序。

config/manifesto.yaml文件:

# directory is relative to Rails root
directory: './mobile'
compute_hash: false 

config/initializers/manifesto.rb文件:

# Load the config file and convert keys from strings in symbols (the manifesto gem need symbolized options).
MANIFESTO_CONFIG = YAML.load_file(Rails.root.join('config', 'manifesto.yml').to_s).inject({}){|config,(k,v)| config[k.to_sym] = v; config}

将加载的配置传递给Manifesto.cache,如:

# change
render :text => Manifesto.cache, :layout => false
# to
render :text => Manifesto.cache(MANIFESTO_CONFIG), :layout => false