Rails:如何访问与用户相关的问题?

时间:2014-02-05 17:11:52

标签: ruby-on-rails

我正在与用户联系。用户有很多问题,问题属于用户。如果我想在用户主页上显示他们自己的问题并且只编辑他们自己的问题,我该如何进行验证呢?我认为需要帮助方法来检查问题是否属于用户,然后,例如,(如果问题属于用户)然后显示编辑链接。任何想法都表示赞赏!

2 个答案:

答案 0 :(得分:1)

find的范围限制为您要搜索其问题的用户。

基本上...

class QuestionsController < ApplicationController

  def show
    # instead of this...
    @question = Question.find(params[:id])

    # do this:
    @question = current_user.questions.find(params[:id])
  end

end

答案 1 :(得分:1)

为了显示用户自己的问题,您可以使用集合渲染:

<%= render current_user.questions %>

确保您有一个问题/ _question.html.erb视图,这是由rails调用的,并传递了一个局部变量(作为模型的名称,例如question)。

这只会显示与用户相关的问题。

修改

要添加meagars answer,如果用户尝试编辑不属于该用户的问题,则应重定向:

redirect_to :root if @question.blank?

可选择向用户显示他们未获得许可的通知。