Куда относятся переменные среды Rails 3? - PullRequest
1 голос
/ 28 сентября 2010

Я относительно новичок в Ruby on Rails 3 и надеюсь интегрировать плагин Ambethia Recaptcha в мое приложение.

В следующем, что похоже на документацию по Rails 2, предлагается поместить следующее в environment.rb

ENV['RECAPTCHA_PUBLIC_KEY']  = '6Lc6BAAAAAAAAChqRbQZcn_yyyyyyyyyyyyyyyyy'
ENV['RECAPTCHA_PRIVATE_KEY'] = '6Lc6BAAAAAAAAKN3DRm6VA_xxxxxxxxxxxxxxxxx'

Куда именно это относится по отношению к файлу Rails 3 environment.rb, который в настоящее время выглядит следующим образом:

# Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
Testapp::Application.initialize!

1 Ответ

3 голосов
/ 28 сентября 2010

в rails 3 вы можете использовать свой Rails :: Application класс как синглтон, так что вы можете добавить напрямую

module TestApp
 class Application < Rails::Application
    config.recaptcha_public_key = 'XXX'
    config.recaptcha_private_key = 'XXX'
 end
end

И после того, как вы сможете получить доступ к этим данным с помощью

TestApp::Application.config.recaptcha_public_key
TestApp::Application.config.recaptcha_private_key

Вам больше не нужны данные ENV.

В вашем контроллере работает простая строка.

verify_recaptcha(:private_key => TestApp::Application.config.recaptcha_private_key)

И в поле зрения

<%= recaptcha_tags :public_key => TestApp::Application.config.recaptcha_public_key %>
...