ruby-on-rails – 使用globalize3获取数据时ActiveRecord Statem
发布时间:2020-12-17 03:20:25 所属栏目:百科 来源:网络整理
导读:当我试图通过指定的艺术家获取所有音频歌曲时,我收到错误: ActiveRecord::StatementInvalid: PGError: ERROR: column reference "artist" is ambiguousLINE 1: ... AND (audio_translations.artist IS NOT NULL) AND (artist = '... ^: SELECT "audios"."id
当我试图通过指定的艺术家获取所有音频歌曲时,我收到错误:
ActiveRecord::StatementInvalid: PGError: ERROR: column reference "artist" is ambiguous LINE 1: ... AND (audio_translations.artist IS NOT NULL) AND (artist = '... ^ : SELECT "audios"."id" AS t0_r0,"audios"."audio_genre_id" AS t0_r1,"audios"."song" AS t0_r2,"audios"."artist" AS t0_r3,"audios"."file_id" AS t0_r4,"audios"."photo_id" AS t0_r5,"audios"."description" AS t0_r6,"audios"."position" AS t0_r7,"audios"."created_at" AS t0_r8,"audios"."updated_at" AS t0_r9,"audios"."date" AS t0_r10,"audio_translations"."id" AS t1_r0,"audio_translations"."audio_id" AS t1_r1,"audio_translations"."locale" AS t1_r2,"audio_translations"."artist" AS t1_r3,"audio_translations"."song" AS t1_r4,"audio_translations"."description" AS t1_r5,"audio_translations"."created_at" AS t1_r6,"audio_translations"."updated_at" AS t1_r7 FROM "audios" LEFT OUTER JOIN "audio_translations" ON "audio_translations"."audio_id" = "audios"."id" WHERE "audio_translations"."locale" = 'en' AND (audio_translations.artist IS NOT NULL) AND (artist = 'Andy') 我使用以下AR语句: Audio.with_translations(I18n.locale).find(:all,:conditions => ["artist = ?",'Andy']) 它没有with_translations方法: >> Audio.find(:all,'Andy']) => [#<Audio id: 10,audio_genre_id: 1,song: "My heart,my life",artist: "Andy",file_id: 1,photo_id: nil,description: "...",position: 2,created_at: "2011-07-12 07:24:43",updated_at: "2011-07-12 08:31:21",date: "2011-07-12 07:24:00">] 解决方法
试着改变
Audio.with_translations(I18n.locale).find(:all,:conditions => ["artist = ?",'Andy']) 至 Audio.with_translations(I18n.locale).find(:all,:conditions => ["audios.artist = ? OR audio_translations.artist ?",'Andy','Andy']) 此查询执行具有相同列的两个表的sql连接 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |