Rails - 显示属于此用户的所有模型

时间:2013-05-03 05:19:47

标签: ruby-on-rails ruby-on-rails-3 model-associations

如果我有User has_many :problems,假设我已在UserProblem之间设置了必要的关联,我该怎么做:

  # UsersController.rb
  def students_problems
     @userId = params[:user_id]
     @problems = give me all problems associated with this @userId
  end

2 个答案:

答案 0 :(得分:2)

假设您的所有关联和数据库字段都是正确的。

@problems = User.find(params[:user_id]).problems

答案 1 :(得分:2)

@user = User.find(params[:user_id])

@problems = @user.problems

如果您计划对代码执行更多操作,理想情况下,您可能希望在模型中执行此操作。因此,您可以为控制器创建这样的模型方法。

@problems = User.name_your_method_here(params[:user_id])

然后在您的用户模型中

self.name_your_method_here(user_id)
  User.find(user_id).problems
end

您可能需要添加一些条件以确保user_id与真实用户匹配,但我会将其留给您做。

编辑:正如lebreeze建议的那样,将方法的名称更改为不同的名称可能是明智之举,至少与您对代码的处理方式有关。