Rails gem api方法链式动态

时间:2014-07-17 06:16:59

标签: ruby-on-rails ruby ruby-on-rails-3

我是GrackleGibbon的粉丝,因为它们使api查询变得非常简单。我喜欢例如grackle,你可以链接将插入到url请求的方法。例如:

client.users.show? :screen_name=>'some_user' 
#http://twitter.com/users/show.json?screen_name=some_user

请注意.users.show结果/users/show

如何编写代码呢?这样我就可以了

Some_class.method1.method2

1 个答案:

答案 0 :(得分:1)

方法链通常通过实现有两个目的的实例方法来实现:

  1. 更改班级的某些内部状态
  2. 返回实例本身
  3. 以下是A Guide to Method Chaining的示例:

    class Person
    
      def name(value)
        @name = value
        self
      end
    
      def age(value)
        @age = value
        self
      end
    
    end
    

    这样,您可以在链接方法时更改内部状态:

    > person = Person.new
    # => #<Person:0x007ff202829e38>
    > person.name('Baz')
    # => #<Person:0x007ff202829e38 @name="Baz">
    > person.name('Baz').age(21)
    # => #<Person:0x007ff202829e38 @name="Baz", @age=21>
    

    您可以在帖子Method chaining and lazy evaluation in Ruby中找到更多详细信息。

    在您的情况下,我建议@resource@action实例变量分别由方法usersshow设置。