我得到了这个代码,当我尝试使用第二个更优雅的方法时,我得到了“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 == nilend
最满意答案
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 == nilend
最满意答案
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?
发布评论