В моем драгоценном камне у меня есть класс, называемый Client
, что я хочу работать так:неверного числа ошибок аргументов при построении змеевидной Руби апи
client = Client.new
client.content_type('pages').content_type
Это означает, что я хочу, чтобы установить свойство, а затем ожидать немедленно верните его в ту же цепочку. Это то, что я до сих пор:
class Client
attr_reader :content_type
def initialize(options = {})
@options = options
end
def content_type
@content_type
end
def content_type(type_id)
@content_type = type_id
self
end
end
Теперь, когда я пытаюсь запустить client.content_type('pages').content_type
я получаю:
wrong number of arguments (given 0, expected 1) (ArgumentError)
from chaining.rb:16:in `<main>'
Что я делаю неправильно? Как мне написать это правильно?
Возможно, вы поможете мне улучшить код? Как выглядел бы лучший дизайн? –
@Amit Я предлагаю, чтобы 'content_type' должен быть' attr_accessor' вашего класса, поэтому вы могли бы делать страницы client.content_type = "pages" или 'client.content_type # output" '' ''. –