0

如果我有一个Userthat ,假设我已经在andhas_many :problems之间建立了必要的关联,我该怎么做:UserProblem

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

2 回答 2

2

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

@problems = User.find(params[:user_id]).problems
于 2013-05-03T05:21:14.603 回答
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 建议的那样,将方法的名称更改为不同的名称可能是明智的,至少与它与您对代码所做的事情相关。

于 2013-05-03T05:21:23.657 回答