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のは、フォームで指定した名前ではありません。

DB を移行しようとしても何も起こらず、DB を削除して新たに開始しようとすると、DB が存在することさえ示されます。

4

1 に答える 1

1

私が正しく理解していれば/clients/1、新しく作成されたオブジェクトへのリンクがビューに表示されることを懸念していますか?

これは、Ruby on Rails を使用する場合のデフォルト パスであり、使用しているパス ヘルパー object_path(object) によって生成されます。これはカスタマイズできます ( routes.rb のガイドを参照してください)。これが問題でない場合、アプリケーションは意図したとおりに動作しています。

ところで、デフォルト パスで使用される番号はid、オブジェクトに指定された を参照します。idActiveRecord を使用して保存されたすべてのオブジェクトは、オブジェクトを識別するために使用できる一意のものを自動的に取得します。created_atスキーマのおよびupdated_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 に答える