Tag: 初始化程序

Rails.logger.info在初始化程序中不起作用

在初始化程序中使用时, Rails.logger.info不会将任何信息写入日志。 如何登录初始化程序?

Rails:在创建类之前运行初始化程序

基本上我在RAILS_ROOT/config/initialiers/app_constant.rb上有一个initializer class ,使一切都易于控制。 class AppConstant APIURL = ‘http://path.to.api’ end 在RAILS_ROOT/model/user.rb ,我有以下设置: class User < ActiveResource::Base self.site = AppConstant::APIURL end 当运行rails s ,我收到以下错误 : uninitialized constant User::AppConstant::APIURL 我知道问题是因为Rails在创建Classes后运行Initializers。 有没有办法让一些初始化程序在Rails设置它之前运行? 最后,通过将require “#{Rails.root}\conf\initializers\app_constant.rb”到在Rails加载模型之前加载的application.rb来解决此问题。

如何在Rails初始化程序中获取服务器端口

我有多个Rails服务器实例,并且每个服务器都需要在environment.rb中知道自己的侦听端口。 request.port将在控制器中工作,但不在environment.rb的上下文中工作。 有办法吗? 谢谢!

在rails初始化程序运行之前,在“之前”块中运行rspec

我想before块before运行一个rspec来在Rails初始化器运行之前设置一些东西,所以我可以测试初始化​​器应该做什么。 这可能吗?

Rails:在初始化程序中获取主机名

我正在使用Sorcery进行身份validation,我需要在其初始化程序中设置第三方身份validation。 初始化程序有一行如下所示: config.twitter.callback_url “http://example.dev/auth/callback?provider=twitter” …当我在本地开发中使用Pow时, example.dev是主机名。 如果应用程序正在生产中,则需要为example.com如果staging.example.com分段,则需要为staging.example.com等。 我想将此行设置为如下所示: config.twitter.callback_url “#{Rails.hostname}/auth/callback?provider=twitter” …但是request.host是我所知道的唯一知道的方法,它只能在控制器级别使用。 我可以使用条件测试并为每个环境手动设置主机名,但是当我在不同的本地和登台环境中进行测试时,能够以编程方式设置它是很棒的。 有什么建议?

Twitter集成rails 4 app

我正在尝试使用这个gem将twitter feed集成到我的Rails 4应用程序中。 我已经阅读了github页面上的文档,但是在我的视图中尝试使用方法时遇到了问题。 我在名为twitter_init.rb的初始化文件中有以下内容(带有我的身份validation信息): client = Twitter::Streaming::Client.new do |config| config.consumer_key = “YOUR_CONSUMER_KEY” config.consumer_secret = “YOUR_CONSUMER_SECRET” config.access_token = “YOUR_ACCESS_TOKEN” config.access_token_secret = “YOUR_ACCESS_SECRET” end 当我在我的视图中尝试使用以下代码时,我收到错误的undefined local variable or method ‘client’ for class#<#:…> : 是否有另一个公开客户端变量的步骤,或者我没有正确初始化它?

Rails是否为rake任务运行初始值设定项?

我运行rake任务时是否执行了config / initializers的脚本?

在加载*路由后运行*的Rails初始化程序?

我想在我的Rails应用程序启动时设置一个类属性。 它需要检查一些路由,因此需要在我的自定义代码运行之前加载路由。 我无法找到一个可靠的地方。 这在“测试”环境中完美地工作: config.after_initialize do Rails.logger.info “#{Rails.application.routes.routes.map(&:path)}” end 但它在“开发”环境中不起作用(路线是空的) 现在,我似乎通过在config.to_prepare运行相同的代码来使开发模式中的东西工作,我理解在每个请求之前发生。 不幸的是,单独使用to_prepare似乎不能在测试模式下工作,因此重复。 我很好奇为什么在测试模式中after_initialize之前加载路由,而不是在开发模式下。 真的,这个最好的钩子是什么? 是否有一个适用于所有环境的钩子? *编辑* 穆的建议重新加载路线很棒。 它使我能够在所有环境中对after_initialize内的路径进行一致的访问。 但是对于我的用例,我认为我仍然需要运行to_prepare中的代码,因为我在模型上设置了一个类属性,并且在每个请求之前重新加载模型。 所以这就是我最终做的事情。 [:after_initialize, :to_prepare].each do |hook| config.send(hook) do User.invalid_usernames += Rails.application.routes.routes.map(&:path).join(“\n”).scan(/\s\/(\w+)/).flatten.compact.uniq end end 这对我来说似乎有些混乱。 我想我宁愿这样做: config.after_initialize do User.exclude_routes_from_usernames! end config.to_prepare do User.exclude_routes_from_usernames! end 但我不确定User是否是正确检查Rails.application.routes地方。 我想我可以用lib /中的代码做同样的事情,但我不确定这是否正确。 另一种选择是在to_prepare上应用mu的建议。 这样可行,但在我的开发环境中,每次请求都重新加载路由似乎有明显的延迟,所以我不确定这是否是一个好的呼叫,尽管它至少是干的。 config.to_prepare do Rails.application.reload_routes! User.invalid_usernames += Rails.application.routes.routes.map(&:path).join(“\n”).scan(/\s\/(\w+)/).flatten.compact.uniq end

Rails 3.1部署到Heroku错误

我正在尝试将我的应用程序部署到Heroku,我之前已经在我的Windows机器上完成了这个,现在我正在使用mac。 我第一次尝试使用Postgresql。 我的Gemfile中有以下内容: gem ‘pg’ 编辑: AndrewDavis-OSX:lunchbox ardavis$ rvm list rvm rubies => ruby-1.9.2-p180 [ x86_64 ] AndrewDavis-OSX:lunchbox ardavis$ heroku rake db:migrate rake aborted! /app/config/initializers/session_store.rb:3: syntax error, unexpected ‘:’, expecting $end App::Application.config.session_store :cookie_store, key: ‘_app_session’ ^ (See full trace by running task with –trace) (in /app) 如你所见,我正在运行ruby 1.9.2。 我的heroku迁移有错误。 编辑2: 刚刚使用Rails 3.1.rc1创建了一个全新的rails应用程序。 我将gemfile设置为include 组:制作做gem’therubyracer-heroku’,’0.8.1.pre3’gemite’pg’结束 我做了一个快速的git […]

使用Rails to_prepare事件

我正在尝试将to_prepare事件用于新的Rails 3.2.1项目。 我放置了以下内容: Rails.application.config.to_prepare do puts ‘here i am before a request’ end 进入config / initializers下的初始化器。 根据此处的文档,当在开发模式下运行时,此块应该在应用程序的每个请求上运行,并且仅在生产中运行一次。 我正在开发模式,这个块不会在每个请求上运行,而是仅在我启动应用程序时运行,而不是再次运行。 以下是我加载应用程序时的输出示例。 rails s => Booting WEBrick => Rails 3.2.1 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server here i am before a request [2012-03-02 20:29:46] INFO WEBrick 1.3.1 […]