问题标签 [named-scope]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - ruby one-liner 这可能吗?
第 2 行和第 3 行是否有机会组合成一条线,并希望节省一个有价值的东西?
模型中的上述函数Config
尝试通过键获取数据库记录,如果在数据库中找不到则返回默认值。
如果可以在命名范围内编写,那就更好了。谢谢
ruby-on-rails - 命名范围不在,如何?
如何在命名范围语法中编写 NOT IN?例如,用户:has_many 照片,我该如何定义:
并返回所有不在Photo
模型中的用户?谢谢!
ruby-on-rails - 链接命名范围未按预期工作
我有 2 个简单的命名范围,定义如下:
如果我打电话给 Numbers.even 我会得到正确的 2,4,6 如果我打电话给 Numbers.odd 我会得到正确的 1,3,5
当我像这样将它们链接在一起时: Numbers.even.odd 我得到了 1,3,5 因为这是我引用的最后一个范围。所以如果我说 Numbers.odd.even 我实际上会得到 2,4,6。
当我将它们链接在一起时,我希望得到 1,2,3,4,5,6。我尝试的另一种方法是:
但是当我将它们链接在一起时我没有得到任何结果,因为它创建的查询如下所示:
'AND' 子句应该改为 OR,但我不知道如何强制。这可能是 ActiveRecord 的问题吗?
ruby-on-rails - Searchlogic 和 :has_many, :through =>
我正在使用 Searchlogic 搜索数据库中的许多字段。其中一个字段是 :has_may, :through => 关系,我无法让它工作。
以下是模型的相关部分:
来源.rb:
作者身份.rb:
作者.rb:
然后,在我看来,我有:
搜索页面加载得很好,但点击“提交”按钮会给我以下错误:
以下是 SourcesController 的代码:
类 SourcesController < ApplicationController
以下是参数:
参数:{"commit"=>"Search", "search"=>{"hash"=>{"text_name_like"=>"canterbury", "date_begin_greater_than_or_equal"=>"", "author"=>{"name_like" =>""}, "editor_like"=>"", "link_not_blank"=>"0", "trans_none_not_null"=>"0", "trans_other_not_null"=>"0", "trans_english_not_null"=>"0", "trans_french_not_null"=>"0", "region_like"=>"", "live_not_null"=>"", "app_facsimile_not_null"=>"0", "date_end_less_than_or_equal"=>""}, "order"=>"" }}
有人对这里发生的事情有任何想法吗?您需要查看更多错误消息吗?
非常感谢!
ruby-on-rails - 急切加载的rails named_scope问题
两种型号(Rails 2.3.8):
用户; 用户名和禁用属性;用户 has_one :profile 个人资料;全名和隐藏属性
我正在尝试创建一个 named_scope 来消除 disabled=1 和 hidden=1 用户配置文件。此外,虽然 User 模型通常与 Profile 模型一起使用,但我希望能够灵活地使用 :include => :profile 语法来指定它。
我有以下用户 named_scope:
当仅引用 User 模型时,这将按预期工作:
但是,当我尝试包含 Profile 模型时:
我收到一条错误消息:
我能以这种方式跨越模型集合的界限吗?
ruby-on-rails - Rails named_scope 跨多个表
我正在尝试通过在 Rails 2.3.x 中使用 named_scopes 来整理我的代码,但我正在努力处理 has_many :through 关联。我想知道我是否将范围放在错误的位置...
下面是一些伪代码。问题是 :accepted 命名范围被复制了两次......我当然可以调用 :accepted 不同的东西,但这些是桌面上的状态,将它们称为不同的东西似乎是错误的。谁能阐明我是否正确执行以下操作?
我知道 Rails 3 已经发布,但它仍处于测试阶段,这是我正在做的一个大项目,所以我还不能在生产中使用它。
我正在尝试运行 person.contacts.accepted 和 group.members.accepted 之类的东西,这是两个不同的东西。named_scopes 不应该在 Membership 和 Connection 类中吗?
但是,如果您尝试将命名范围放在 Membership 和 Connection 类中,那么您会收到此错误(因为 Person.find(2).contacts 返回一个没有“接受”方法的 Persons 数组:
一种解决方案是仅在 Person 类中将两个不同的命名范围称为不同的东西,甚至创建单独的关联(即 has_many :accepted_members 和 has_many :accepted_contacts),但它看起来很骇人听闻,实际上我不仅仅接受了(即. 禁止成员、忽略连接、待处理、请求等)
ruby-on-rails - rails named_scope 忽略急切加载
两种型号(Rails 2.3.8):
- 用户; 用户名和禁用属性;用户 has_one :profile
- 轮廓; 全名和隐藏属性
我正在尝试创建一个 named_scope 来消除 disabled=1 和 hidden=1 用户配置文件。User 模型通常与 Profile 模型一起使用,因此我尝试预先加载 Profile 模型(:include => :profile)。
我在名为“可见”的用户模型上创建了一个 named_scope:
我注意到,当我在查询中使用 named_scope 时,会忽略急切加载指令。
变体 1 - 仅限用户模型:
变体 2 - 在视图中使用 Profile 模型;延迟加载配置文件模型
变体 3 - 急切加载配置文件模型
变体 4 - 使用 name_scope,包括预加载指令
变体 4 确实返回了正确数量的记录,但似乎也忽略了急切加载指令。
这是跨模型命名范围的问题吗?也许我没有正确使用它。
Rails 3 能更好地处理这种情况吗?
ruby-on-rails - MySQL 到 PostreSQL 和命名范围
我的一个模型有一个命名范围,可以正常工作。代码是:
这在使用 MySQL 数据库的应用程序的本地副本上运行良好,但是当我将应用程序推送到 Heroku(仅使用 PostgreSQL)时,出现以下错误:
ActiveRecord::StatementInvalid (PGError: ERROR: column "msg_threads.subject" must appear in the GROUP BY clause or be used in an aggregate function:
SELECT "msg_threads"."id" AS t0_r0, "msg_threads"."subject" AS t0_r1, "msg_threads"."originator_id" AS t0_r2, "msg_thr
eads"."created_at" AS t0_r3, "msg_threads"."updated_at" AS t0_r4, "msg_threads"."url_key" AS t0_r5, "deletion_flags"."id" AS t1_r0, "deletion_flags"."user_id" AS t1_r1, "deletion_flags"."msg_thread_id" AS t1_r2, "deletion_flags"."confirmed"
AS t1_r3, "deletion_flags"."created_at" AS t1_r4, "deletion_flags"."updated_at" AS t1_r5, "recipiences"."id" AS t2_r0, "recipiences"."user_id" AS t2_r1, "recipiences"."msg_thread_id" AS t2_r2, "recipiences"."created_at" AS t2_r3, "recipien
ces"."updated_at" AS t2_r4 FROM "msg_threads" LEFT OUTER JOIN "deletion_flags" ON deletion_flags.msg_thread_id = msg_threads.id LEFT OUTER JOIN "recipiences" ON recipiences.msg_thread_id = msg_threads.id WHERE (recipiences.user_id = 1 AND
deletion_flags.user_id IS NULL) GROUP BY msg_threads.id)
我不熟悉 Postgres 的工作,所以我需要在此处添加什么才能使其正常工作?谢谢!
ruby-on-rails - 如何使用 named_scope 过滤模型中的记录
我有一个带有“描述”字段的模型“产品”。现在我想在索引页面中有一个链接,单击该链接将显示描述为空白(空)的所有产品。
在模型中我定义了一个这样的named_scope
我通过在控制台上调用 Product.no_description.count 来检查 named_scope 是否有效。
据我所知,控制器应该处理来自“索引”操作链接的过滤请求,但能够将其与查看所有产品的默认设置区分开来。
我的问题是让控制器处理不同的请求,为视图上的链接设置什么路由以及视图上的实际链接。希望我解释了我的问题。
mysql - Rails:使用触发MySQL“in”的named_scope
问题:
我想运行一个会触发类似的查询
使用named_scope
.
我尝试了什么:
这是针对单个代码:
我尝试了类似的东西
并发送
由于额外的引号,它会触发
select * from users where code in '(1,2,4)'
引发 MySQL 错误。
PS: 理想情况下我想发送 user.of_codes([1,2,4])