[英]how to find records from another table in rails?
I have welcome,user,college,education model.. On the welcome page i want to show messages posted by only those users who have gone to the same college as the current user...but i am not able to show that. 我有欢迎,用户,学院,教育模型。.在欢迎页面上,我只想显示那些与当前用户去同一所大学的用户发布的消息...但是我无法显示。 i have written following code in my welcome controller : 我已经在我的欢迎控制器中编写了以下代码:
def index
@welcome = Welcome.all
@newmessage = Welcome.new
@college = User.find(@current_user.id).colleges
end
using first line i am able to show messages posted by all users inside my view but that is not what i want.Using third line i am able to find current users college data but i am not sure how can i use this data... 使用第一行,我可以显示视图中所有用户发布的消息,但这不是我想要的。使用第三行,我可以找到当前用户的大学数据,但我不确定如何使用此数据...
how can i search only those users having tha same college as current users... 我如何只搜索那些拥有与当前用户相同大学的用户...
Following is the model codes : 以下是型号代码:
class User < ActiveRecord::Base
has_many :welcomes
has_many :educations
has_many :colleges, :through => :educations
end
class College < ActiveRecord::Base
has_many :educations
has_many :users, :through => :educations
end
class Welcome < ActiveRecord::Base
belongs_to :user
end
Following is my schema code for these models : 以下是我针对这些模型的架构代码:
create_table "welcomes", :force => true do |t|
t.text "message"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", :force => true do |t|
t.string "email", :default => "", :null => false
t.string "encrypted_password", :limit => 128, :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"
t.datetime "updated_at"
t.string "first_name"
t.string "last_name"
t.integer "role_id"
t.string "ancestry"
end
create_table "educations", :force => true do |t|
t.integer "college_id"
t.integer "user_id"
t.integer "year"
t.text "concentration"
t.string "attended_for"
t.datetime "created_at"
t.datetime "updated_at"
t.string "month"
t.boolean "private", :default => false
t.boolean "approved", :default => false
t.integer "approved_by"
t.boolean "alumni", :default => false
t.boolean "is_mentor", :default => false
t.boolean "approved_mentor", :default => false
end
create_table "colleges", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "approved", :default => false
end
看看这是否有帮助-
User.find(@current_user.id).colleges.joins(:users => :welcomes).select('welcomes.message')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.