gpt4 book ai didi

ruby-on-rails - Rails 4 不存储数据、种子或默认模型保存

转载 作者:搜寻专家 更新时间:2023-10-30 23:12:01 25 4
gpt4 key购买 nike

我创建了一个名为 Project 的简单模型。项目有几个属性 title、description、image_path、date_started、date_ended。当我尝试以此为我的项目播种时

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

它实际上并没有将其保存到数据库中。它确实通过分配一个 ID 在数据库中保存了一条记录,但没有设置任何字段。我在模型中放置了一个 validate presence 以确保它确实在获取一些数据,但它不会抛出任何错误。

我还检查了我的 Controller 以确保它允许我修改变量

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

我不完全确定为什么这没有保存到数据库并且坦率地说已经用完了想法。

我使用的数据库是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 form data not getting saved to db

Ruby on rails - paperclip not saving to database

最佳答案

我遇到了类似的问题。

状态模型:

class CreateStatuses < ActiveRecord::Migration
def change
create_table :statuses do |t|
t.string :name

t.timestamps
end
end
end

在 seeds.rb 中:

Status.create([{ name: "Administrator" }, { name: "Writer" }])

当我运行 rake db:seed 时,创建了一行,但名称字段中没有插入任何内容。我认为这与新的 Rails 4 功能有关:strong parameters .给出了很好的例子here .

要使种子工作:

  • 在 Gemfile 中我添加了:gem 'protected_attributes' 然后运行 ​​bundle install
  • 在模型(status.rb)中:

    class Status < ActiveRecord::Base
    attr_accessible :name
    end

关于ruby-on-rails - Rails 4 不存储数据、种子或默认模型保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18581075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com