1

投稿のあるテーブルがあり、そのスキーマは次のようになります

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

今、私が使用するとき

Post.find(params[:id])

代わりに一意のものを表示するので、私が望むものではないid 列を検索します... post_idid

では、代わりに列Post.find()を検索するようにするにはどうすればよいですか?post_id

4

3 に答える 3

2
Post.find_by_post_id(params[:id]

また、Model.find は主キーに関連付けられています。post_id を primary_key として使用できる場合は、post_id が次のようになっていることを Rails に伝えることができます。

self.primary_key = :post_id
于 2012-08-19T01:35:39.213 に答える
0

post_id代わりにbucket_id(これはあなたの説明の残りの部分に適合しません)使用することを意味すると仮定します:

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

注:.firstあなたが言及したので、それはユニークです。

于 2012-08-18T22:28:19.777 に答える
-1

ActiveRecord .find メソッドを書き換えたくない場合は、そのまま使用してください。

Post.where(:post_id => id)
于 2012-08-18T22:23:39.837 に答える