2012-06-08 115 views
0

我知道這是一個老問題,但我不明白爲什麼代碼,半年前工作不起作用。 所以我想只讓業主可以訪問他們的帖子。我thaught它可以這樣寫:網址安全問題

def create 
    @post = current_user.posts.new params[:post] 
    if @post.save 
    flash[:notice] = 'Post created' 
    redirect_to @post 
    else 
    render :new 
    end 
    end 

和編輯及其他控制器,當我登錄

 def edit 
     if (current_user.id == @post.user_id) 
    @post = Post.find params[:id] 
    else 
    flash[:notice] = 'You are not owner!' 
    end 
end| 

,但我的觀點得到,:

undefined method `user_id' for nil:NilClass 

在哪裏是我的問題?

回答

2
def edit 
    # The @post is nil unless you set it in a before filter. 
    if (current_user.id == @post.user_id) 
    @post = Post.find params[:id] 
    else 
    flash[:notice] = 'You are not owner!' 
    end 
end 

您應該先找到該帖子。

def edit 
    @post = Post.find params[:id] 
    if (current_user.id != @post.user_id) 
    flash[:notice] = 'You are not owner!' 
    end 
end 
+0

非常感謝你。我希望你有很多幸福) – skrypalyk