在ActiveRecord上的Ruby on Rails chaning方法不起作用?(Ruby on Rails chaning methods on ActiveRecord doesnt work?)

我得到了这个代码,当我尝试使用第二个更优雅的方法时,我得到了“Missing方法”。 我认为http://guides.rubyonrails.org/active_record_querying.html上的文档相当无益或不完整。 有任何想法吗?

顺便说一句,随意帮助写一个更加“oneliner”优雅的方法:)

def index @sortby = params[:sort_by] # THIS WORKS #if @sortby == nil # @movies = Movie.all #else # @movies = Movie.order(@sortby) #end # THIS DOESNT. WHY? I THOUGHT METHOD CHAINING AND LAZYLOAD WOULD WORK. @movies = Movie.all @movies = @movies.order(@sortby) unless @sortby == nil

结束

I got this code, and i get the "Missing method" when i try to use the second more elegant approach. I think the documentation at: http://guides.rubyonrails.org/active_record_querying.html is rather unhelpful or incomplete. Any ideas?

By the way, feel free to help write an even more "oneliner" elegant approach to this :)

def index @sortby = params[:sort_by] # THIS WORKS #if @sortby == nil # @movies = Movie.all #else # @movies = Movie.order(@sortby) #end # THIS DOESNT. WHY? I THOUGHT METHOD CHAINING AND LAZYLOAD WOULD WORK. @movies = Movie.all @movies = @movies.order(@sortby) unless @sortby == nil

end

最满意答案

all加载记录并返回数组。 尝试使用范围 :

@movies = Movie.scoped @movies = @movies.order(@sortby) unless @sortby.nil?

all loads records and returns array. Try to use scoped:

@movies = Movie.scoped @movies = @movies.order(@sortby) unless @sortby.nil?在ActiveRecord上的Ruby on Rails chaning方法不起作用?(Ruby on Rails chaning methods on ActiveRecord doesnt work?)

我得到了这个代码,当我尝试使用第二个更优雅的方法时,我得到了“Missing方法”。 我认为http://guides.rubyonrails.org/active_record_querying.html上的文档相当无益或不完整。 有任何想法吗?

顺便说一句,随意帮助写一个更加“oneliner”优雅的方法:)

def index @sortby = params[:sort_by] # THIS WORKS #if @sortby == nil # @movies = Movie.all #else # @movies = Movie.order(@sortby) #end # THIS DOESNT. WHY? I THOUGHT METHOD CHAINING AND LAZYLOAD WOULD WORK. @movies = Movie.all @movies = @movies.order(@sortby) unless @sortby == nil

结束

I got this code, and i get the "Missing method" when i try to use the second more elegant approach. I think the documentation at: http://guides.rubyonrails.org/active_record_querying.html is rather unhelpful or incomplete. Any ideas?

By the way, feel free to help write an even more "oneliner" elegant approach to this :)

def index @sortby = params[:sort_by] # THIS WORKS #if @sortby == nil # @movies = Movie.all #else # @movies = Movie.order(@sortby) #end # THIS DOESNT. WHY? I THOUGHT METHOD CHAINING AND LAZYLOAD WOULD WORK. @movies = Movie.all @movies = @movies.order(@sortby) unless @sortby == nil

end

最满意答案

all加载记录并返回数组。 尝试使用范围 :

@movies = Movie.scoped @movies = @movies.order(@sortby) unless @sortby.nil?

all loads records and returns array. Try to use scoped:

@movies = Movie.scoped @movies = @movies.order(@sortby) unless @sortby.nil?