2016-05-20 13 views
-1

基本的には、新しいレコードを作成してそのようなタイトルのレコードが存在するかどうか(大文字小文字を区別しない)と存在するかどうかを調べるためのメソッド(おそらくbefore_createフィルタ)新しいレコードを作成しないでください。そうでない場合は、新しいレコードを作成します。RAILS:存在すれば新しいレコードを作成しない

チェックは簡単ではありませんexists?チェック。私は9つの関連性を持ったフォームをネストしています。私はトピックで説明したようにレコードやプリフォームのアクションを作成する前に実行されるメソッドが必要です。そのため、関連するモデルのそれぞれにそのアクションを示すことができます

ありがとうございます。

+0

@Vucko私は9つの関連性を持つフォームをネストしているので、それは簡単ではありません。私はトピックで説明したようにレコードとプリフォームのアクションを作成する前に実行されるメソッドが必要です。そのため、関連するモデルのそれぞれにそのアクションを伝えることができます – Src

+1

"9関連"の詳細について質問を更新してください。あなたがあなたの質問に関する情報を残しておけば、あなたが得た回答はあなたの期待と一致しません。一度に9つの関連オブジェクトを作成することは問題かもしれませんが、そのような理由があるかもしれません。 – Leito

答えて

0

私は何を探していることはfind_or_create_byだと思うアクション

@existing = Records.where('title = ?', params[:title]).first 
if @existing.present? 

record_path(@existing) 

create action 

エンド

+0

私は9つの関連付けを持つフォームをネストしているので、それは簡単ではありません。私はトピックの中で説明したような記録とプリフォームのアクションを作成する前に実行される方法が必要です。 – Src

+0

なぜこのように動作しないのかわかりませんが、このメソッドですでにレコードが存在する場合はレコードを作成しません。しかし、あなたはRecord_rbのbefore_filterとしてこの正確なメソッドを使用することができます – Boltz0r

+0

9つのモデルすべてに同じコードの4行を書くのはちょっと難しいです。 Coul'd you imagine 4x9 = 36行のコードは、異なるモデルのために同じことをしていますか? – Src

関連する問題