0

ユーザーがフォームに情報を入力する必要があるアプリを開発しています。一部のフィールドには、空白でないことを確認するための基本的な検証があります。

ユーザー モデルには多くの user_entries があります

has_many :user_entries, dependent: :destroy

user_entry モデルは user に属します

belongs_to :user

user_entry モデルの検証で問題が発生します

validates :name, :address, :email, presence: true

外部キー user_id を user_entries テーブルに追加する前は、このコードは正常に機能していました。問題なくフォームに入力し、エントリをテーブルに追加できました。しかし、user_entries テーブル内の現在のユーザー ID を取得して、ユーザーのエントリを追跡できるようにする必要があります。

def create
  @user_entry = UserEntry.new(params[:user_entry])
  @user_entry.add_comp_connections_from_entered_competition(current_entered_competition)
  @user = current_user
  @user_entry = @user.user_entries.build
#--etc--#

検証を削除するとこれが可能になりますが、削除したくありません。外部キーを削除すると検証できるようです。しかし、私は両方が機能することを望んでいます。どんな助けでも大歓迎です、ありがとう

4

1 に答える 1

0

SteveTurczyn が述べたように

@user = current_user
@user_entry = @user.user_entries.build

ただに

 @user_entry.user = current_user

非常に多くの問題を解決するのと同じように、コードを機能させます。物事を複雑にしすぎない場合です。

ありがとう、スティーブ・ターチン

于 2013-07-23T09:14:34.893 に答える