小编Fea*_*ity的帖子

Ruby:将变量合并到一个字符串中

我正在寻找一种更好的方法将变量合并到一个字符串中,在Ruby中.

例如,如果字符串是这样的:

"的animal actionsecond_animal"

我有变量animal,action并且second_animal,将这些变量放入字符串的首选方法是什么?

ruby string

89
推荐指数
5
解决办法
11万
查看次数

belongs_to不使用主键选项

我一直在努力解决这个问题,并决定把它扔出去:

我有3个型号,用户,连接,可疑

用户有许多连接,连接有一个可疑,通过case_id链接

用户通过其连接有许多嫌疑人.

代码如下:

class User < ActiveRecord::Base
  has_many :followers
  has_many :suspects, :through => :followers
end

class Connection < ActiveRecord::Base
  belongs_to :user
  belongs_to :suspect, :primary_key => :case_id , :foreign_key => :case_id
end

class Suspect < ActiveRecord::Base
  belongs_to :connection, :primary_key => :case_id , :foreign_key => :case_id
end
Run Code Online (Sandbox Code Playgroud)

问题是belongs_to似乎忽略了:主键.

如果我做

u = User.find(:first)
u.suspects
Run Code Online (Sandbox Code Playgroud)

生成的SQL是:

SELECT `suspects`.* FROM `suspects` INNER JOIN `connections` ON `suspects`.id = `connections`.case_id WHERE ((`followers`.user_id = 1))
Run Code Online (Sandbox Code Playgroud)

但它应该是:

SELECT `suspects`.* FROM `suspects` INNER JOIN `connections` ON `suspects`.case_id = …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails

7
推荐指数
1
解决办法
4211
查看次数

Ruby on Rails:测试ActiveRecord结果是否包含值

下午,

可以说我收集了随机选择的用户:

User.find(:all,:limit => 10,:order =>"rand()")

现在从这些结果中,我想看看结果中是否包含ID为3的用户,找到这个的最佳方法是什么?

我想过Array.include?但这似乎对我来说是一个死路一条.

谢谢

J.P

activerecord ruby-on-rails

6
推荐指数
1
解决办法
4819
查看次数

标签 统计

activerecord ×2

ruby-on-rails ×2

ruby ×1

string ×1