2016-06-20 2 views
0

私はReviewモデルを持っていますが、そのスキーマはbelongs_toUserとなっています。Ecto assoc_constraintは機能しません

各レビューはユーザーに属している必要がありますので、user_idの列は必須です。

defmodule MyReelty.Repo.Migrations.AddUserIdToReviews do 
    use Ecto.Migration 

    def change do 
    alter table(:reviews) do 
     add :user_id, references(:users, on_delete: :nothing) 
    end 
    create index(:reviews, [:user_id]) 
    end 
end 

残念ながら、私は

%Review{} |> Review.changeset(@valid_params) |> Repo.insert! 

レビューが保存されて実行しています:

def changeset(model, params \\ :empty) do 
    model 
     |> cast(params, @required_fields, @optional_fields) 
     |> a lot of things like validate_length 
     |> assoc_constraint(:user) 
    end 

は、これは私の移行です!私は、user_idまたは他のユーザー関連情報が詳細にないことを再度確認しました。

ところで、私はvalidate_numberのような別のものをチェックしました!

この場合、assoc_constraintはなぜ機能しませんか?あなたが@required_fieldsuser_idを追加する必要が

+1

ですか? 'Repo.insert! 'の戻り値は何ですか?また、 '@ required_fields'に' user_id'を持っていますか? – Dogbert

+0

@Dogbert私は質問を編集しました。 – asiniy

+0

@Dogbertありがとう!私は答えを得た – asiniy

答えて

2

は、それはあなたが「何も起こらない」とはどういう意味ですか、それ

関連する問題