使用"要求' my_module#39;和#34;在轨道上的红宝石

时间:2014-08-05 19:26:19

标签: ruby-on-rails ruby ruby-on-rails-4

仍然在学习RoR,有时我会看到在具有require 'my_library'的普通Ruby中使用库的示例。

当我们使用Ruby on Rails时,我们能够require吗?或者所有内容都必须包含在gemfile中(我猜两者都安装并需要库)。

特别是我正在尝试调用API:

class MyModel < ActiveRecord::Base
    has_many :other_models

    def get_score
       require 'rest_client'
       response = RestClient.post 'https://sender.blockspring.com/api/blocks/da289f59df228ac4e89cebdfc9aa41fd?api_key=fe5cf0d86af27c086ab5cd4d0eab6641', { items_as_json_string: '[{"time_since_post_in_hours": 5, "upvote_count": 22}, {"time_since_post_in_hours": 3, "upvote_count": 502}]' }
    end
end

2 个答案:

答案 0 :(得分:1)

require Ruby 的一部分,并非 Rails 所独有。您可以在 Rails require填充内容,通常在的顶部完成,而不是在方法内部。 require只是运行该文件以确保加载您尝试使用的功能。

答案 1 :(得分:1)

你绝对可以要求东西,但是你通常不需要在Gemfile中声明它们。您需要is if you told it so的一个特殊情况,例如(在Gemfile中):

gem 'something_very_specific', require: false

现在,您需要在想要使用它的“非常具体”的地方使用它。