1

Project という単純なモデルを作成しました。プロジェクトには、title、description、image_path、date_started、date_ended の 2 つのプロパティがあります。これでプロジェクトをシードしようとすると

Project.create(
    title: "Project",
    description: "a project",
    image: "http://i.imgur.com/.png",
    date_start: Time.now)

実際にはDBに保存されません。IDを割り当ててDBにレコードを保存しますが、フィールドは設定されていません。モデルに検証プレゼンスを配置して、実際にデータを取得していることを確認しましたが、エラーはスローされません。

また、コントローラーをチェックインして、変数を変更できることを確認しました

def project_params
  params.require(:project).permit(:title, :description, :image_path, :date_started, :date_ended)
end

なぜこれが DB に保存されないのか完全にはわかりません。率直に言って、アイデアが不足しています。

私が使用しているデータベースは Postgres です。

編集 - 追加されたスキーマ

ActiveRecord::Schema.define(version: 20130902003818) do

  create_table "projects", force: true do |t|
    t.string   "title"
    t.text     "description"
    t.string   "image"
    t.date     "date_start"
    t.date     "date_end"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

end

うまくいかなかった同様の質問:

Railsフォームデータがdbに保存されない

Ruby on rails - ペーパークリップがデータベースに保存されない

4

3 に答える 3

1

create例外として問題を明らかにするために強打してみてください:

Project.create!(
    title: "Project",
    description: "a project",
    image: "http://i.imgur.com/.png",
    date_start: Time.now)

次に、それを修正します:-)

于 2013-09-02T22:13:14.500 に答える
0

プロジェクトを何度も微調整した後。なんらかの方法でバグが発生しているに違いないという結論に達しました。すべての「プロジェクト」ファイル (コントローラー、ビュー、モデル) を削除し、scaffold コマンドを使用して再生成することで、この問題を解決しました。現在、意図したとおりに機能しています。

于 2013-09-03T22:30:09.600 に答える