Tag: activerecord

如何在Ruby on Rails中为所有模型动态更改Active Record数据库?

在我们的计划中,每个客户都有自己的数据库。 我们通过电子邮件发送链接,将它们连接到数据库。 该链接包含一个GUID,使程序知道要连接到哪个数据库。 如何以动态和编程方式将ActiveRecord连接到正确的数据库?

Rails迁移:PostgreSQL上的Bigint似乎失败了吗?

尝试使用bigint列创建表会创建标准整数列。 怎么可能出错? 我不知道从哪里开始寻找。 我在迁移中使用它: create_table :table_name do |t| t.integer :really_big_int, limit: 8 end 我正在使用Ruby 1.9.2,PostgreSQL 9.0.3和Rails 3.0.9。 我已经删除了数据库并多次运行迁移,但它仍然没有创建bigint列。

如何在Rails Active Record中关闭auto_increment

是否可以在ActiveRecord中创建没有auto_increment标志的主键? 我做不到 create table :blah, :id => false 因为我想在列上有主键索引。 我查了一下文档,但没有找到任何有用的东西。 是否可以在没有auto_increment的情况下创建主键?

Rails选择子查询(如果可能的话,没有finder_sql)

我有一个名为Object的模型(这并不重要) 它有一个默认价格(列称为“价格”)。 然后有一个Schedule对象允许覆盖特定日期的价格。 我希望能够在SQL查询期间确定MINIMUM价格(根据定义,默认值和“当前”价格之间的最小值),以便能够按计算的最低价格进行排序 我想让我的搜索查询尽可能高效,我想知道我是否可以这样做: Object.select(“id AS p_id, id, (SELECT MIN(`schedules`.`price`) FROM `schedules` WHERE `schedules`.`object_id` = p_id`) AS objects.min_price”).limit(5) 但是,它会生成一个奇怪的SQL,如下所示: SELECT `objects`.`id` AS t0_r0, `objects`.`title` AS t0_r1, `objects`.`created_at` AS t0_r2, `objects`.`updated_at` AS t0_r3, `objects`.`preferences` AS t0_r4 …….. (a lot of columns here) … ` WHERE `objects`.`id` IN (1, 2, 3, 4 ….) 所以,你可以看到它不起作用。 首先 – […]

在Ruby on Rails中,创建和创建之间有什么区别! 和API文档没有它?

ActiveRecord已create ,有些人使用create! ……这是create! 可以在create引发exception吗? 我找不到create! 在当前的Rails API文档中……

Rails连接并包含连接表中的列

我不明白如何从rails获取我想要的列。 我有两个模型 – 用户和个人资料。 用户:has_many配置文件(因为用户可以恢复到其配置文件的早期版本): > DESCRIBE users; +—————-+————–+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +—————-+————–+——+—–+———+—————-+ | id | int(11) | NO | PRI | NULL | auto_increment | | username | varchar(255) | NO | UNI | NULL | | | password | varchar(255) | NO | […]

布尔字段的单选按钮,如何做“假”?

我目前正在尝试在Rails 3中插入一些简单的真/假单选按钮,但我找不到一种方法来使单选按钮插入“false”。 我的代码如下: ja nein 我已经尝试过: 1/0 “1”/“0” 真假 “真假” “是”/“否” 但似乎没有什么比值false更合适。 我的字段设置为 validates_presence_of :accident_free 当点击“错误”按钮时,我总是收到必须填写的消息。 单击true按钮时,它可以正常工作,但不会识别false。 有谁知道如何正确地做到这一点? 提前致谢 阿恩

如何在具有名为“valid”的列的数据库上使用ActiveRecord? (DangerousAttributeError)

我正在访问一个我无法更改的数据库,它有一个名为valid defined的列。 无论何时我尝试访问属性,我都会遇到以下exception: 有效? 由ActiveRecord定义(ActiveRecord :: DangerousAttributeError) exception是有道理的,但由于我无法更改数据库,如何解决此错误? 我尝试“覆盖”该属性,但我不知道如何删除原始列。 我可以成功调用这个valid_column方法,但是每当我尝试访问数据库中定义的另一个属性时,我都会得到相同的exception。 它似乎仍在尝试映射有效列。 def valid_column=(valid) write_attribute(:valid, valid) end def valid_column read_attribute(:valid) end 我不确定这是否重要,但这里是我的环境的详细信息: Windows Ruby 1.8.6 Linux服务器上的Informix数据库 activerecord(2.3.4) activerecord-informix-adapter(1.0.0.9250) ruby-informix(0.7.1) 提前致谢!

Rails rake db:migrate没有任何影响

我今天制作了一个新的Rails 3应用程序,添加了一个简单的迁移,并且出于某种原因,当我执行rake db:migrate时没有任何反应。 它只是暂停几秒钟,然后返回到命令提示符,没有任何错误或任何错误。 Schema.rb和数据库保持空白。 有什么想法可能会发生什么? 我做了很多应用程序,从来没有遇到过这个问题。 一切都是完全标准的设置。

Rails,如何在find_by_sql中清理SQL

有没有办法在rails方法find_by_sql清理sql? 我尝试过这个解决方案: Ruby on Rails:如何在不使用find时清理SQL的字符串? 但它失败了 Model.execute_sql(“Update users set active = 0 where id = 2”) 它会抛出一个错误,但执行了sql代码,ID为2的用户现在已经禁用了帐户。 简单的find_by_sql也不起作用: Model.find_by_sql(“UPDATE user set active = 0 where id = 1”) # => code executed, user with id 1 have now ban 编辑: 好吧,我的客户端要求在管理面板中创建该function(由sql选择)以进行一些复杂的查询(连接,特殊条件等)。 所以我真的想find_by_sql那个。 第二编辑: 我想实现’邪恶的’SQL代码不会被执行。 在管理面板中,您可以键入查询 – > Update users set admin = true where id […]