为什么我的实例变量在我的 Rails 控制器操作中被覆盖?

Why is my instance variable being overwritten inside my Rails controller action?

我的 post 控制器的索引操作中有两个变量。但是我使用的是 kaminari gem 并且它要求索引操作中每页有多少 post 的变量。

但是,我的搜索还有另一个变量。我不想超车,有什么变通办法?

def index
  @posts = Post.where(["title LIKE ?", "%#{params[:search]}%"])
  @posts = Post.page(params[:page]).per(10)
end

你试过了吗

@posts = Post.where(["title LIKE ?", "%#{params[:search]}%"]).page(params[:page]).per(10)

或这个

@posts = Post.where(["title LIKE ?", "%#{params[:search]}%"])
@posts = @posts.page(params[:page]).per(10)  

你现在设置它的方式,第二个 @posts 变量每次都会 100% 覆盖第一个 @posts 变量,因为你只是简单地重新分配它。