Tag: sqlite

Rails 3 SQLite3 Boolean false

我试图在SQLite3表中插入一个错误的布尔值,但它总是插入一个真值。 这是我的迁移: class CreateUsers false, :null => false end end def self.down drop_table :resources end end 当我尝试使用rails插入时,它会生成以下SQL: INSERT INTO “users” (“name”, “active”) VALUES (‘test’, ‘f’) SQLite将’f’视为true,因此它将true插入到我的数据库中。 我想要它生成的查询是: INSERT INTO “users” (“name”, “active”) VALUES (‘test’, false) 我究竟做错了什么? rails:3.0.7 sqlite3 gem:1.3.3

清洁方式按指定的顺序通过id查找ActiveRecord对象

我想在给定一组id的情况下获得一个ActiveRecord对象数组。 我认为 Object.find([5,2,3]) 将返回一个数组,其中包含对象5,对象2,然后按顺序返回对象3,但我得到的数组按对象2,对象3和对象5排序。 ActiveRecord Base 查找方法API提到您不应该按照提供的顺序期望它(其他文档不提供此警告)。 一个可能的解决方案是按相同顺序的ID数组查找的? ,但订单选项似乎对SQLite无效。 我可以编写一些ruby代码来自己对对象进行排序(有点简单,缩放比例较差或缩放比较复杂),但有更好的方法吗?

SQLite3“LIKE”或PostgreSQL“ILIKE”的通用Ruby解决方案?

我使用SQLite3进行开发,使用PostgreSQL进行部署。 但是,我面临以下问题: 我使用SQLite3简单搜索: def self.search(search) if search find(:all, :conditions => [“style LIKE ? OR construction LIKE ?”, “%#{search}%”, “%#{search}%”]) else find(:all) end end 但是,它不适用于PostgreSQL ,我需要替换ILIKE的LIKE才能解决问题: def self.search(search) if search find(:all, :conditions => [“style ILIKE ? OR construction ILIKE ?”, “%#{search}%”, “%#{search}%”]) else find(:all) end end 是否有“Ruby方式”在任何数据库中进行这些搜索? 编辑 – 基于您的答案我不相信我会找到一个通用的Ruby解决方案。 我遵循了Ruby on Rails教程:通过示例学习Rails – 作者:Michael Hartl […]

Ruby on Rails – 显示has_many表中的字段

我有两张桌子:船和航程。 一艘船可以有很多航程,但是一次航行可能只有一艘船。 在RoR中,船模型具有has_many:voyages,Voyage模型设置为belongs_to:ship 我可以使用与此类似的代码在视图中显示ship表中的所有字段而不会出现任何问题: 我现在正试图在视图中显示航行表中的一条信息。 如果我做: 我能够拉出ActiveRecord条目,即: # 如果我追加.to_json,我可以提取包含所有数据的json文件。 如何在我的视图中显示特定字段,我尝试过的内容包括: 和 但两个错误都在我身上。 注意:虽然这种关系是一艘船到多次航行 – 目前每艘船只有一次航行。 我承认自己是一个新手!

Rails:如何迁移我添加了:belongs_to关系的数据库?

这是我的第一个rails应用程序,我创建的唯一目的是学习rails。 我创建了一个应用程序,其中包含用户和产品(以及会话,但这与此无关)。 在做了rake db:mograte创建一些项目并进行测试后,我想添加一个关系,其中产品belongs_to:users和users has_many:products。 但是,当然,因为我已经创建了表,所以没有任何列可以保存这些信息。 如何在数据库上进行迁移以便反映此模型? 它有控制台工具吗? 我是否必须安装第三方gem?

使用ruby中的数组进行数据库查询

我正在尝试在数组中查找所有具有值的行,这是我的代码 require ‘sqlite3’ db = SQLite3::Database.new(‘test.sqlite’) res = db.query(“SELECT w1.synsetid FROM words w1 WHERE w1.wordid IN (?)”, arr) arr:字符串数组 我得到了这个错误 SQLite3::RangeException: bind or column index out of range 任何帮助?

更好的搜索查询两列forename和name

实际上我有来自MrJoshi的这个搜索查询这里是相关的问题: 搜索查询(名称或名称)和(名称forname)和(forname名称) def self.search(query) return where(‘FALSE’) if query.blank? conditions = [] search_columns = [ :forname, :name ] query.split(‘ ‘).each do |word| search_columns.each do |column| conditions << " lower(#{column}) LIKE lower(#{sanitize("%#{word}%")}) " end end conditions = conditions.join('OR') self.where(conditions) end 此搜索查询的问题在于它返回多条记录的方式。 例如,如果某人正在搜索John Smith此搜索查询将返回所有带有name Smith forename John记录和所有name Smith记录,尽管只有一个人与搜索查询完全匹配,因此name is Smith and forename is John所以我更改了代码一点点: def self.search(query) return where(‘FALSE’) […]

我们如何validationSequel.connect是否在Rails中打开了我们的SQLite3数据库?

我们试图找出我们的Rails 3.1.12应用程序是否打开带有gem续集的SQLite3数据库(版本3.6或更高版本)。 这是我们做的: rails console 在Rails控制台会话中,键入以下命令: sequel = Sequel.connect(‘sqlite://development’) 它返回: => # sequel.class也会返回: => Sequel::SQLite::Database 但是,当尝试使用sequel.execute从数据库中进行选择或使用sequel.execute检查表时,返回的文本表明该表不存在。 我们不太确定数据库(这里的开发)是否已经打开。 我们如何检查?

SQLite,Ruby on rails。 如何使用acts_as_votable gem获取最高投票对象?

我试图显示过去7天内最好的3个食谱。最好的是取决于使用acts_as_votable gem的投票数量,但我还没有创建缓存。当前user.rb,过去7天的限制 def featuredfeed Recipe.where(‘created_at >= ?’, Time.zone.now – 1.week) end recipe.rb class Recipe { order(created_at: :desc) } end 投票表是订购的 id, votable_id, votable_type, voter_id, voter_type, vote_flag, vote_scope, vote_weight, created_at, updated_at votable_id是食谱的id,需要计算其被投票的次数

Ruby / Rails / SQLite的一键安装?

我已经习惯了MAMP的One-Click安装本地环境。 是否存在Ruby等效…您运行的下载并立即获得本地运行的最新版本的Ruby,Rails,SQLite? 我正在使用Mac,运行Leopard,并且我知道所有上述技术都附带Leopard(除了SQLite之外)。 我参考较新版本的书籍以及我需要的最后一件事是尝试改进教程以使用我的版本。 还有一个不太重要的问题:什么是“gem”,我需要确保的东西也是完全更新的?