私はjira-rubyライブラリを使用しており、下記のようにJIRA::Resource::Issue
クラスを拡張しました。継承されたクラスには属性がありませんか?
class ServerRequest < JIRA::Resource::Issue
def requested_os
customfield_11169
end
end
私は新しいServerRequest
オブジェクトを作成すると、オブジェクトがタイプJIRA::Resource::Issue
例であるとき、私は私ができるなどの属性にアクセスすることができません。
[81] pry(main)> ticket.class
=> JIRA::Resource::Issue
[80] pry(main)> ticket.customfield_11169
=>{"self"=>"http://REDACTED:8080/rest/api/2/customFieldOption/14451",
"value"=>"Linux - CentOS","id"=>"14451"}
[81] pry(main)> request = ServerRequest.new(ticket)
[82] pry(main)> request.class
=> ServerRequest
[83] pry(main)> request.customfield_11169
NoMethodError: undefined method `customfield_11169' for #<ServerRequest:0x005634b57431b0>
from /home/user/.gem/ruby/gems/jira-ruby-1.1.0/lib/jira/base.rb:308:in `method_missing'
私はJIRA::Resource::Base
クラスを通読しようとしましたが、私は、私はそれが属性のハッシュへのクラスに私のメソッド呼び出しをマッピングしていますかを明確に理解を持っているかわからない、またはなぜ私の拡張クラスはありません同じことをしないでください。
完璧な答え。私は 'method_missing'メソッドを読み込み、' @ attrs'変数を適切にインスタンス化していないと判断できました。 'initialize'メソッドで' super'への呼び出しを追加することで問題が解決されました。 – thisguy123