0

在我的 rails 4 应用程序中,我无法将 twitter gem 配置从我的控制器提取到模块中,得到

undefined method `include' for #<UsersController:0x007ff7d566df08>

用户控制器.rb

def show
    include Twitconfig
    ...
end

控制器/关注点/Twitconfig.rb

require 'twitter'
module Twitconfig
    @client = Twitter::REST::Client.new do |config|
    ...
    end
end

我已经尝试将“include Twitconfig”移出新操作,就像这样

class UsersController < ApplicationController
    include Twitconfig

但这只是在调用@client 时给出了一个未定义的方法错误。

这是我第一次在 rails 4 中包含一个模块,我已经尝试了一段时间,所以任何帮助都将不胜感激。

4

1 回答 1

2

问题是你的模块不是你包含它的方式,你不能在方法之外编写代码。

Include 会将实例方法添加到类中,因此您应该尝试使用:

require 'twitter'
module Twitconfig
    def client
      client = Twitter::REST::Client.new do |config|
      ...
      end
    end
end

在你的控制器中:

class UsersController < ApplicationController
    include Twitconfig


def show
    puts "#{client.inspect} 
end

它应该显示您的客户

于 2014-03-26T06:29:54.310 回答