ruby on rails更改Model.find()上的默认列

时间:2012-08-18 22:08:22

标签: ruby-on-rails model find

我有一个包含帖子的表,其架构看起来像

id | post_id | title | body | etc...

现在,当我使用

Post.find(params[:id])

搜索 id列这不是我想要的,因为我显示唯一 post_id而不是{{ 1}} ...

那么如何确保id会在Post.find()中搜索

3 个答案:

答案 0 :(得分:2)

Post.find_by_post_id(params[:id]

此外,Model.find与您的主键绑定。 如果你可以使用post_id作为primary_key,那么你可以告诉rails post_id是这样的:

self.primary_key = :post_id

答案 1 :(得分:0)

假设您的意思是post_id而不是bucket_id(不符合您的描述的其余部分),请使用:

Post.where( "post_id = #{params[:id]}").first

注意:.first因为您提到它是唯一的。

答案 2 :(得分:-1)

除非你想重写ActiveRecord .find方法,否则只需使用

Post.where(:post_id => id)