在视图中排序数组
Sort array in view
我正在尝试使用 link_to 对视图中的数组进行排序,但是结果没有任何变化。
观点-
= link_to 'Rating', sort: "rating"
= link_to 'Origin', sort: "origin"
= link_to 'Meal Time', sort: "meal_time"
控制器-
def index
@recipes = Recipe.order(params[:sort])
end
#####
def sort
if (params[:order] == 'rating')
@recipes.order('rating')
elsif (params[:order] == 'origin')
@recipes.order('origin')
end
respond_to do |format|
format.html { redirect_to :index }
format.json { render json: @recipe }
end
end
我错过了什么吗?我将 ASCIIcast 用于 sortable table 列,因为这是我找到的解决此问题的最简单的解决方案。这是回购 - https://github.com/luchia/eaten.
编辑:按照 wurde 的建议,我保留了 Turbolinks gem 并更改了视图中的代码 -
=link_to('Rating', sort: 'rating', 'data-no-turbolink' => true)
=link_to('Origin', sort: 'origin', 'data-no-turbolink' => true)
=link_to('Meal Time', sort: 'meal_time', 'data-no-turbolink' => true)
但这会导致一个奇怪的错误,其中属性 no-turbolink 现在是 URL (image attached)
的物理部分
这可能是 Rails turbolink 缓存的问题,因为您正在使用 link 到 'pull' 新的食谱索引。尝试删除 turbolinks 进行验证。
这是一个 Railscasts 解决方案:Sortable Table Columns
这是相关的 Whosebug QA:Using turbolinks in a Rails link_to
我仍然无法让它工作,并尝试了多种不同的解决方案,包括不同的 gem。运气不好。
我正在尝试使用 link_to 对视图中的数组进行排序,但是结果没有任何变化。
观点-
= link_to 'Rating', sort: "rating"
= link_to 'Origin', sort: "origin"
= link_to 'Meal Time', sort: "meal_time"
控制器-
def index
@recipes = Recipe.order(params[:sort])
end
#####
def sort
if (params[:order] == 'rating')
@recipes.order('rating')
elsif (params[:order] == 'origin')
@recipes.order('origin')
end
respond_to do |format|
format.html { redirect_to :index }
format.json { render json: @recipe }
end
end
我错过了什么吗?我将 ASCIIcast 用于 sortable table 列,因为这是我找到的解决此问题的最简单的解决方案。这是回购 - https://github.com/luchia/eaten.
编辑:按照 wurde 的建议,我保留了 Turbolinks gem 并更改了视图中的代码 -
=link_to('Rating', sort: 'rating', 'data-no-turbolink' => true)
=link_to('Origin', sort: 'origin', 'data-no-turbolink' => true)
=link_to('Meal Time', sort: 'meal_time', 'data-no-turbolink' => true)
但这会导致一个奇怪的错误,其中属性 no-turbolink 现在是 URL (image attached)
的物理部分这可能是 Rails turbolink 缓存的问题,因为您正在使用 link 到 'pull' 新的食谱索引。尝试删除 turbolinks 进行验证。
这是一个 Railscasts 解决方案:Sortable Table Columns
这是相关的 Whosebug QA:Using turbolinks in a Rails link_to
我仍然无法让它工作,并尝试了多种不同的解决方案,包括不同的 gem。运气不好。