我只是期待以隨機順序返回DataMapper記錄。DataMapper記錄的隨機訂購
這裏是我的模型(使用DataMapper的與sqlite3的數據庫):
class Movie
include DataMapper::Resource
DataMapper::Property::String.length(255)
property :id, Serial
property :title, String
property :img, String
property :description, String
property :year, String
property :created_at, DateTime
has n, :votes
belongs_to :user
end
這裏是我如何返回記錄(西納特拉)
get '/' do
@movies = Movie.all # <-- What should this look like?
haml :home
end
「@movies = Movie.all.shuffle!」與「@movies = Movie.all」有什麼不同? @ movies.shuffle!'? – 2012-07-10 07:49:28
@padde這是微妙的,但它是'@movies = Movie.all.shuffle' ...沒有感嘆號。 '!'表示你把原來的var中的內容覆蓋掉了。由於'@movies = Movie.all.shuffle'段中'@ movies'沒有任何內容可以覆蓋,所以我離開了'!'。我只是不確定DM是否繼承了這種方法,所以如果它不起作用,就提供了一種替代方法。 – ScottJShea 2012-07-10 15:34:20
我的意思是在你的最後一個例子中,你實際上只是寫了兩行「Movie.all.shuffle!」。你仍然在'Movie.all'的返回值上調用mutator。所以說不應該叫'Movie.all.shuffle!'。但是因爲'Movie.all'只是返回一個副本,所以無論如何,所以沒關係。 – 2012-07-10 15:54:12