2012-05-06 6 views
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を削除しようとすると、それは存在するということがわかります。

答えて

1

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

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

BtWでは、デフォルトパスで使用される数値は、オブジェクトに指定されたidを参照します。 ActiveRecordを使用して保存されたすべてのオブジェクトは、オブジェクトを識別するために使用できる一意のidを自動的に取得します。スキーマにcreated_atupdated_atの列があるように、id列は、スキーマに明示的に定義するかどうかにかかわらず作成されます。

(再作成し、現在のスキーマへの移行、ドロップ)データベースをリセットするには、次のコマンドを使用します。

rake db:reset 

EDIT:CLIENT_NAMEがどこにある

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

は(次のHTMLを生じるはずですクライアントの名前属性)

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

しかし、私のビューで呼び出す属性はidではありません。 DBをジョブテーブルを追加するように移行しようとする前に、これが動作していました。 – Keva161

+0

私の形式では、:name属性を保存しています。クライアントのIDだけを表示するのはなぜですか?以前と同じようにクライアント名が表示されていました。私は新しいモデルでデータベースを移行しようとしている以外は私のコードに触れていません。 help => https://github.com/keva161/document_managerの場合、IveはGitHubに自分のコードを入れます 私は/ clients /ディレクトリに移動して新しいクライアントを追加したときと同じデータベース関連の問題だと思います保存を押してください。フォームは入力されますが、情報は保存されません。 – Keva161

関連する問題