我的 ruby on rails 应用程序的架构如下。我目前正在填写我的主页,并希望从随机现有用户中随机挑选照片以在主页上显示。
我在我的家庭控制器中尝试了很多东西,但似乎无法正确...
class HomeController < ApplicationController
def index
@featured = User.find(:all, :limit => 4, :order => 'RANDOM()')
@users = User.find(:all)
user_count = User.count()
offset = rand(0..(user_count-1))
@my_user = User.find(:all, :limit => 1, :offset => offset )
end
end
我尝试了以下但没有成功:
@photo = User.find(:order => 'RANDOM()').photo
@user = User.find(:all, :limit => 1, :order => 'RANDOM()')
@photo = Photo.find(@user)
我收到这样的错误:找不到 id=6 的照片
如果不指向零位置/不存在的照片,我将如何处理...?
ActiveRecord::Schema.define(:version => 20130513143229) do
create_table "photos", :force => true do |t|
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "image"
t.integer "user_id"
end
create_table "roles", :force => true do |t|
t.string "name"
t.integer "resource_id"
t.string "resource_type"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "users", :force => true do |t|
t.string "email", :default => "", :null => false
t.string "encrypted_password", :default => "", :null => false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", :default => 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "name"
t.string "avatar"
t.string "image"
end