大多时候,rails提供的对象关系方法:has_many,belongs_to,已经很好用了。但有时需要自己定制一些查询,比如:某个分类下的所有书籍(包含子分类)
class BookCategory < ActiveRecord::Base
has_many :books,:foreign_key => "category_id"
has_many :all_books,:class_name=>"Book" , :finder_sql =>"
select * from #{Book.table_name}
where category_id between #{id}.00 and #{id}.99"
然后执行,发现错误:
warning: Object#id will be deprecated; use Object#object_id
在这里,由于find_sql中的字符串所处环境为Class,故#{self.id}调用的是Class.id,而我们想要的是BookCategory的对象方法!
这个问题rails自然考虑到了,仔细读读doc,你会发现,find_sql,在文档中用的是“单引号”: ''
于是问题迎刃而解
分享到:
相关推荐
安装将此行添加到您的应用程序的Gemfile中: gem 'serialize_has_many' 然后执行: $ bundle 或将其自己安装为: $ gem install serialize_has_many用法假设您有一个“父母有很多孩子”的关系。 要使用serialize_has...
activemodel-associations, 用于普通 ruby 对象的has_many和belongs_to宏 ActiveModel::Associations 用于普通 ruby 对象的has_many 和 belongs_to 宏。安装将此行添加到你的应用程序的Gemfile中:gem 'activemodel-
这是关于如何使用has_many :throght创建多对多关联的完整示例has_many :throght在此示例中,我使用staff模型和client模型,其中人员有很多客户,而客户有很多员工 操作说明 在下面的终端中输入 $ rails new many - ...
HasManyCommas 允许您使用 active_record 查询以及与该查询模型上的 has_many 关联关联的符号,并提供每个父记录行及其所有子记录的表格表示,作为额外的列附加。 例如,假设您有一个用户模型: user = User....
嵌套表单字段 这个Rails gem帮助创建具有嵌套has_many关联的模型的表单。 它使用jQuery动态添加和删除嵌套关联。 适用于任意深度嵌套的关联(经过4个级别的测试)。 可与诸如类的表单构建器。 需要Ruby 1.9+和Rails...
当您具有诸如has_many , has_one或belongs_to has_many的父子关系时,您可以通过一个查询加载父记录,然后为每条记录触发另一个SQL语句以加载相关的孩子。 假设您有以下Ecto模式 defmodule User do use Ecto . ...
在database.yml中,将数据库what_ever_you_named_your_start_project的名称更改为project-name rails db:create db:migrate db:seed rails s -p 3001 设置客户端的步骤 cd client && yarn yarn start 处理git ...
这对于制造商,查看他们的产品在哪个馆藏中是有用的,而且对于所有其他可能以这种方式发现与他们当前正在寻找的产品相关的产品的其他用户也很有用。 这是浏览Product Hunt并浏览其庞大数据库的新方法。 支持语言:...
Data mining has grown from an isolated part of SQL Server Analysis Services with two algorithms, to an intrinsic part of the SQL Server Business Intelligence(BI) platform that is fully integrated ...
__Firefox_Focus_(iOS)_has_moved_to_a_new_reposito_focus-iosreposito_Focus-iOS__Firefox_Focus_(iOS)_has_moved_to_a_new_reposito_focus-ios.zip
テーブル设计使用者柱子类型选项昵称细绳null:假电子邮件细绳null:假加密密码细绳null:假介绍文本图像文件协会has_many:文章has_many:评论has_many:like_articles has_many:like_users has_many:用户标签has...
Rails提供了四种基本的关联类型:` belongs_to`、` has_one`、` has_many` 和 `has_and_belongs_to_many`。这些关联允许我们建立对象之间的关系,从而在编程时简化数据的存取。 1. `belongs_to` 关联: 这种关联...
通过关联通过belongs_to,has_many和has_many查询关联。 遍历视图中的关联并显示主要实例的关联数据。 通过has_many识别联接模型。 概述 我们已经看到了如何使用简单的关联在Rails中向我们的用户显示数据,但是更...
消息has_many:tags,通过:tag_users has_many:tag_users has_many:职位has_many:评论房间表柱子类型选项姓名细绳null:假协会has_many:room_users has_many:users,通过:room_users has_many:消息当属:...
Microsoft SQL Server 2005 Backward Compatibility Components (Microsoft SQL Server 2005 向后兼容组件) SQL Server Backward Compatibility 包中包含最新版本的 Data Transformation Services 2000 运行时 (DTS...
数据库设计 用户表 ... column_physical column_logic ...has_many:评估,通过:: user_evaluation has_many:产品,通过::喜欢 has_one:user_profile has_one:user_address has_one:送货地址 h
Here_is_a_collection_of_repository_that_has_applie_Software-CopyrightSoftware-Copyright.zip
THIS_REPOSITORY_HAS_MOVED_TO_github.comnvidiacub_cub
餐桌设计用户表柱子类型选项姓名细绳null:假电子邮件细绳null:假密码细绳null:假身份细绳协会has_many:user_groups has_many:groups,通过::user_groups has_many:日历has_many:聊天组表柱子类型选项姓名...
has_many:like_messages,通过::likes,来源::message 消息テーブル 柱子 类型 选项 标题 文本 null:假 内容 文本 null:假 用户身份 整数 null:false,foreign_key:true 图像 细绳 category_id 整数 ...