#ruby-on-rails #ruby #ruby-on-rails-5
#ruby-на-рельсах #ruby #ruby-on-rails-5 #ruby-on-rails
Вопрос:
Я изучал Ruby on Rails, но у меня все еще возникают проблемы, когда дело доходит до Ruby gems с примерами, основанными на irb, а не на Rails или Sinatra framework. Я пытаюсь реализовать блок.функциональность io Bitcoin API. Но код, который я нахожу, относится только к Ruby, поэтому я не уверен, где создать конфигурационный файл для ключа API, а также нужно ли мне создавать контроллер, чтобы заставить это работать в представлениях для Rails.
Драгоценный камень и примеры включены: https://github.com/BlockIo/gem-block-io
Я установил этот драгоценный камень через bundle install на Rails
gem install block_io -v=1.0.6
Пример Ruby показывает следующее:
>> require 'block_io'
>> BlockIo.set_options :api_key=> 'API KEY', :pin => 'SECRET PIN', :version => 2
В каком файле конфигурации Rails я должен ввести вышеуказанный api_key и pin-код?
В приведенном примере они показывают код для получения вашего адреса следующим образом:
BlockIo.get_my_address
Нужно ли мне создавать функцию в контроллере, например:
def address
@my_address = BlockIo.get_my_addresses
end
и в представлении использовать:
<%= @my_address %>
Мне нужно некоторое руководство в отношении вышеизложенного, любые комментарии или помощь будут высоко оценены.
Ответ №1:
require 'block_io'
может перейти в Gemfile
подобное gem 'block_io'
. Rails / bundler потребует этого автоматически для вас, если имя драгоценного камня также является именем файла, которое вы хотите запросить у этого драгоценного камня.
BlockIo.set_options :api_key=> 'API KEY', :pin => 'SECRET PIN', :version => 2
может быть помещен в инициализатор , например config/initializers/block_io.rb
. Этот способ set_options
вызывается только один раз, когда Rails запускает сервер, консоль или бегун.
Поместите это вот так в файл config/initializers/block_io.rb
BlockIo.set_options :api_key=> ENV['BLOCK_IO_API_KEY'], :pin => ENV['BLOCK_IO_PIN'], :version => 2
При использовании переменных окружения вы не передаете никаких секретов в свой репозиторий.
Теперь вы должны иметь возможность вызывать BlockIo.get_my_address
внутри любого действия.