正如你所看到的,我传递了一个方法“this_w-6ren">
gpt4 book ai didi

ruby-on-rails - 不明确的列名 : error not working with tags

转载 作者:行者123 更新时间:2023-12-04 05:31:50 27 4
gpt4 key购买 nike

我有一些代码可以按受欢迎程度显示我的食谱,如下所示。这存储在我的配方 View 的索引文件中。

<% @all_recipes.this_week.reorder("likes_count DESC").limit(10).each do |i| %>
<%=link_to image_tag(i.image(:fixed), alt: "MUC", :class => "browse-recipes"), i %>
<% end %>

正如你所看到的,我传递了一个方法“this_week”,它完美地定义为一个范围。

我的问题是,我在同一页面上有一个标签云,当我点击一个标签时,应该刷新页面,但只显示那些带有相关标签的食谱。这在没有应用 this_week 方法的情况下完美运行,但如果该方法在那里,我得到以下错误:
SQLite3::SQLException: ambiguous column name: created_at: SELECT  "recipes".* FROM     "recipes" JOIN taggings recipes_taggings_81e277c  ON recipes_taggings_81e277c.taggable_id = recipes.id AND recipes_taggings_81e277c.taggable_type = 'Recipe' AND recipes_taggings_81e277c.tag_id = 33 WHERE "recipes"."live" = 't' AND (created_at > '2014-01-13 00:00:00.000000')  ORDER BY likes_count DESC LIMIT 10

有什么想法吗?非常感激。

最佳答案

你必须有一个 created_at配方和标签表中的字段。 MySQL 不知道它应该按哪一个排序。无论您在哪里进行排序(在 this_week 范围内或在 tag 方法中),您都需要更改以下内容:

order('created_at')

对此:
order('recipes.created_at')

假设您想按配方的字段订购。如果你不喜欢硬编码表名,你可以使用 self.class.table_name并将其替换为。

关于ruby-on-rails - 不明确的列名 : error not working with tags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21191488/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com