Entrys没有正确保存到我的数据库中?

时间:2012-05-06 12:50:37

标签: ruby-on-rails ruby-on-rails-3 sqlite

这是我的架构文件..

ActiveRecord::Schema.define(:version => 20120505115340) do

  create_table "clients", :force => true do |t|
    t.string   "name"
    t.string   "detail"
    t.string   "more_detail"
    t.string   "more_details"
    t.datetime "created_at",   :null => false
    t.datetime "updated_at",   :null => false
  end

  create_table "jobs", :force => true do |t|
    t.string   "name"
    t.integer  "number"
    t.string   "responsible"
    t.string   "monthly"
    t.string   "quarterly"
    t.string   "other"
    t.datetime "created_at",  :null => false
    t.datetime "updated_at",  :null => false
  end

end

这是我的迁移文件..

class CreateClients < ActiveRecord::Migration
  def change
    create_table :clients do |t|
      t.string :name
      t.string :detail
      t.string :more_detail
      t.string :more_details
      t.timestamps
    end
  end
end

class CreateJobs < ActiveRecord::Migration
  def change
    create_table :jobs do |t|
      t.string :name
      t.integer :number
      t.string :responsible
      t.string :monthly
      t.string :quarterly
      t.string :other
      t.timestamps
    end
  end
end

在我的视图文件中,我进行了设置,以便提取client.name并将其显示给用户<%= link_to client.name, client_path(client) %>

但是,我创建新条目的所有内容都是/clients/1,而不是我在表单中指定的名称。

当我尝试迁移数据库时,没有任何反应,然后当我尝试删除数据库重新启动时,它告诉我它确实存在。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您担心您的视图会为您新创建的对象显示指向/clients/1的链接吗?

这是使用Ruby on Rails时的默认路径,也是您正在使用的路径助手object_path(对象)生成的路径。这可以自定义(请参阅routes.rb上的指南)。如果这不是问题,那么您的应用程序正在按预期工作。

BtW,默认路径中使用的数字是指给予对象的id。使用ActiveRecord存储的所有对象将自动获得唯一的id,可用于标识对象。与模式中的created_atupdated_at列一样,无论您是否在模式中明确定义,都会创建id列。

要重置数据库(删除,重新创建并迁移到当前架构),请使用以下命令:

rake db:reset

编辑:

<%= link_to client.name, client_path(client) %>

应该产生以下HTML(其中CLIENT_NAME是客户端的name属性)

<a href="/clients/1">CLIENT_NAME</a>