0
私はReview
モデルを持っていますが、そのスキーマはbelongs_to
User
となっています。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_fields
にuser_id
を追加する必要が
ですか? 'Repo.insert! 'の戻り値は何ですか?また、 '@ required_fields'に' user_id'を持っていますか? – Dogbert
@Dogbert私は質問を編集しました。 – asiniy
@Dogbertありがとう!私は答えを得た – asiniy