2012-05-06 2 views
1

Вот мой файл схемы ..Entrys не сохраняются в моей базе данных правильно?

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

Если вы правильно поняли, что вас беспокоит, что на вашем экране отображается ссылка на /clients/1 для вашего вновь созданного объекта?

Это путь по умолчанию при использовании Ruby on Rails, и это то, что будет создано вспомогательным объектом пути (object), который вы используете. Это можно настроить (см. Руководства по адресу routes.rb). Если это не проблема, ваше приложение работает по назначению.

BtW, номер, используемый в пути по умолчанию, относится к объекту id. Все объекты, хранящиеся с использованием ActiveRecord, автоматически получат уникальный id, который может быть использован для идентификации объекта. Так же, как и столбцы created_at и updated_at в вашей схеме, столбец id будет создан независимо от того, явно ли вы указали его в своей схеме или нет.

Чтобы восстановить базы данных (падение, воссоздавать и мигрировать в текущей схеме), используйте следующую команду:

rake db:reset 

EDIT:

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

должно привести к следующему HTML (где CLIENT_NAME является атрибут имени клиента)

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

Но атрибут im, вызывающий в моем представлении, не является идентификатором. Это работало до того, как я попытался перенести БД в таблицу рабочих мест. – Keva161

+0

Итак, в моей форме я сохраняю атрибут: name. Почему это только показывает мне идентификатор клиента? Он показывал имя клиента до и, как я уже сказал. Я не коснулся моего кода, кроме попытки переноса db с новой моделью. Ive поставил мой код на GitHub, если help => https://github.com/keva161/document_manager Я считаю, что это проблема с базой данных, как при перемещении в каталог/clients/и добавлении нового клиента и нажмите save. Форма войдет, но информация не будет сохранена. – Keva161

Смежные вопросы