- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,用户 has_many 票。不幸的是,tickets 表没有 user_id:它有一个 user_login(它是一个遗留数据库)。总有一天我会改变它,但现在这个改变会产生太多的影响。
那么如何通过 建立“用户 has_many :tickets”关联?登录 柱子?
我尝试了以下finder_sql,但它不起作用。
class User < ActiveRecord::Base
has_many :tickets,
:finder_sql => 'select t.* from tickets t where t.user_login=#{login}'
...
end
ArgumentError: /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:402:in `to_constant_name': Anonymous modules have no name to be referenced by
from /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/base.rb:2355:in `interpolate_sql'
from /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:214:in `qualified_name_for'
from /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:477:in `const_missing'
from (eval):1:in `interpolate_sql'
from /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/association_proxy.rb:95:in `send'
from /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/association_proxy.rb:95:in `interpolate_sql'
from /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/has_many_association.rb:143:in `construct_sql'
from /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/has_many_association.rb:6:in `initialize'
from /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations.rb:1032:in `new'
from /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations.rb:1032:in `tickets'
from (irb):1
:finder_sql => 'select t.* from tickets t where t.user_login="#{login}"'
:finder_sql => 'select t.* from tickets t where t.user_login=#{id}'
has_many :tickets_since_subscription,
:finder_sql => ['select t.* from tickets t where t.user_login=?'+
' and t.created_at>=?', '#{login}', '#{subscription_date}']
has_many tickets, :primary_key="login", :foreign_key="user_login"
最佳答案
我想你想要 :primary_key
has_many
的选项.它允许您指定当前表上的列,谁的值存储在 :foreign_key
中。另一张 table 上的列。
has_many :tickets, :foreign_key => "user_login", :primary_key => "login"
关于ruby-on-rails - 如何将字符串传递给 has_many :finder_sql parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/328692/
有一个类(class)叫 Location .我想在单个查询中预加载所有直接子级。 在 Location类关系定义如下: has_many :children, class_name: self,
给定以下两个(简化的)模型: class Customer :destroy, :finder_sql => 'SELECT `u`.* FROM `users` `u` WHERE (`u
在 Rails 应用程序中,我在 has_many 声明中使用了 :finder_sql 选项。 Rails 文档说当我这样做时,“未添加 find_in_collection”。这是什么意思? 最佳
我已经确定了我想要的东西,但我似乎无法以 Rails 设计师正在寻找的方式获得它。基本上,我有(请搁置多元化/等问题): 人类关系( parent 、后代) 我正在尝试获取单亲的所有后代,以及许多后代
在我的应用程序中,用户 has_many 票。不幸的是,tickets 表没有 user_id:它有一个 user_login(它是一个遗留数据库)。总有一天我会改变它,但现在这个改变会产生太多的影响
我遇到的问题是,我用于 finder_sql 的查询在移交给 PostgreSQL 之前未正确解析,导致数据库语法错误。 为了说明问题,我刚刚使用了此处的示例代码: http://api.rubyon
我有一个名为 Object 的模型(它是什么并不重要) 它有一个默认价格(列称为“价格”)。 然后有一个 Schedule 对象允许覆盖特定日期的价格。 我希望能够在 SQL 查询期间确定最低价格(根
我有一段代码如下: class Foo < ActiveRecord::Base #Some Code has_many :bars, finder_sql: proc{ "Valid SQL
我正在将 Rails 应用程序升级到 4.0。我收到以下弃用警告。我已经谷歌了这个,但没有找到任何告诉如何改变这一点的东西。 DEPRECATION WARNING: The :finder_sql
我有一个关联需要一些连接/自定义查询。当试图弄清楚如何实现它时,重复的响应是 finder_sql。但是在 Rails 4.2(及更高版本)中: ArgumentError: Unknown key:
我正在将 Rails 应用程序移植到 Rails 4.2。这个 Rails 应用程序在关联中包含一些相当复杂的手动 SQL 代码 - 部分原因是数据库优化(例如子选择而不是 JOIN),部分原因是在编
例如假设您有: class Model "SELECT * FROM somethings" end class Something [] Good!
我是一名优秀的程序员,十分优秀!