1

这是我的架构文件..

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我在表单中指定的名称。

当我尝试迁移数据库时,什么也没有发生,然后当我尝试删除他的数据库以重新开始时,它告诉我它甚至确实存在。

4

1 回答 1

1

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

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

顺便说一句,默认路径中使用的数字是指给id定的对象。使用 ActiveRecord 存储的所有对象都将自动获得一个唯一的id,可用于识别该对象。就像架构中的created_atupdated_at列一样,id无论您是否在架构中明确定义该列,都会创建该列。

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

rake db:reset

编辑:

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

应生成以下 HTML(其中 CLIENT_NAME 是客户端的名称属性)

<a href="/clients/1">CLIENT_NAME</a>
于 2012-05-06T13:00:45.783 回答