Rails - will_paginate 说 "variable appears to be empty. Did you forget to pass the collection object for will_paginate?"
Rails - will_paginate says "variable appears to be empty. Did you forget to pass the collection object for will_paginate?"
我有这个查询:
@cars = Car.paginate(page: params[:page], per_page: 5).order(created_at: :desc).group_by { |r| r.created_at.to_date }
并且在视图中:
= will_paginate @cars
但我收到此错误(在 site#index
中呈现):
The @site variable appears to be empty. Did you forget to pass the collection object for will_paginate?
我也试过用这种方式更新查询:
@cars = Car.order(created_at: :desc).paginate(page: params[:page], per_page: 5).group_by { |r| r.created_at.to_date }
但是错误还是一样
如何解决这个问题?
谢谢
你可以在你的控制器中做这样的事情:
@car_paginator = Car.paginate(page: params[:page], per_page: 5).order(created_at: :desc)
@cars = @car_paginator.group_by { |r| r.created_at.to_date }
然后在您的视图中更改带有分页的行:
= will_paginate @car_paginator
问题是:当您使用 paginate
方法时,结果不是普通的数组或数据库关系,而是具有一些额外信息的对象,例如 @size
。如果你 运行 group_by
你删除了那个额外的属性和 return 一个普通的散列。
我有这个查询:
@cars = Car.paginate(page: params[:page], per_page: 5).order(created_at: :desc).group_by { |r| r.created_at.to_date }
并且在视图中:
= will_paginate @cars
但我收到此错误(在 site#index
中呈现):
The @site variable appears to be empty. Did you forget to pass the collection object for will_paginate?
我也试过用这种方式更新查询:
@cars = Car.order(created_at: :desc).paginate(page: params[:page], per_page: 5).group_by { |r| r.created_at.to_date }
但是错误还是一样
如何解决这个问题?
谢谢
你可以在你的控制器中做这样的事情:
@car_paginator = Car.paginate(page: params[:page], per_page: 5).order(created_at: :desc)
@cars = @car_paginator.group_by { |r| r.created_at.to_date }
然后在您的视图中更改带有分页的行:
= will_paginate @car_paginator
问题是:当您使用 paginate
方法时,结果不是普通的数组或数据库关系,而是具有一些额外信息的对象,例如 @size
。如果你 运行 group_by
你删除了那个额外的属性和 return 一个普通的散列。