这是我的架构文件..
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
,而不是我在表单中指定的名称。
当我尝试迁移数据库时,没有任何反应,然后当我尝试删除数据库重新启动时,它告诉我它确实存在。
答案 0 :(得分:1)
如果我理解正确,您担心您的视图会为您新创建的对象显示指向/clients/1
的链接吗?
这是使用Ruby on Rails时的默认路径,也是您正在使用的路径助手object_path(对象)生成的路径。这可以自定义(请参阅routes.rb上的指南)。如果这不是问题,那么您的应用程序正在按预期工作。
BtW,默认路径中使用的数字是指给予对象的id
。使用ActiveRecord存储的所有对象将自动获得唯一的id
,可用于标识对象。与模式中的created_at
和updated_at
列一样,无论您是否在模式中明确定义,都会创建id
列。
要重置数据库(删除,重新创建并迁移到当前架构),请使用以下命令:
rake db:reset
编辑:
<%= link_to client.name, client_path(client) %>
应该产生以下HTML(其中CLIENT_NAME是客户端的name属性)
<a href="/clients/1">CLIENT_NAME</a>