posts_controller.rb 破棄メソッド
def destroy
if !request.xhr?
render_404
return
end
if user_signed_in?
if Post.exists?(:post_id => params[:id])
if Post.post_is_mine(params[:id], current_user.id)
@return = { :error => false, :response => "Post deleted" }
else
@return = { :error => true, :response => 'You are not allowed to perform this action.' }
end
else
@return = { :error => true, :response => 'This post doesn\'t exist.' }
end
else
@return = { :error => true, :response => 'Please login before you delete a post.' }
end
render :json => ActiveSupport::JSON.encode( @return )
end
post.rb
def self.post_is_mine(post_id, user_id)
#where(:user_id => user_id, :post_id => bucket_id)
where("user_id = ? and post_id = ?", user_id, bucket_id)
end
投稿を破棄するときにどのクエリが実行されているかを確認すると、実行するクエリのみが表示されますが、 TRUE が返されるため単に通過するクエリは表示され.exists?
ません.post_is_mine
何かが問題を引き起こす可能性があるため、または単純に.post_is_mineで if ステートメントを試してみても、メソッドとして他の名前をいくつか試しましたが、それでもクエリは実行されませんでした
where句の使用方法に関して、モデルに問題がある可能性はありますか?