2013-09-11 3 views
0

Мои таблицы повторить эту строку всегдаРубин DataMapper, наследование таблицы

property :created_at, DateTime, :default => DateTime.now, :lazy => [:show] 
property :updated_at, DateTime, :default => DateTime.now, :lazy => [:show] 

Как СУХОЙ это? Наследую ли я, есть модуль или что-то еще?

Это как это:

Class Foo 
include DataMapper::Resource 

property :id, Int 
property :created_at, DateTime, :default => DateTime.now, :lazy => [:show] 
property :updated_at, DateTime, :default => DateTime.now, :lazy => [:show] 
end 

Class Bar 
include DataMapper::Resource 

property :id, Int 
property :created_at, DateTime, :default => DateTime.now, :lazy => [:show] 
property :updated_at, DateTime, :default => DateTime.now, :lazy => [:show] 
end 

они повторяются несколько раз через каждую из таблицы

+0

Мне нужна дополнительная информация. Когда/где этот журнал показывает? Это внутри консоли? внутри модели? Попробуйте объяснить это немного лучше. –

+0

@GuilhermeBarrosAvila обновил сообщение. Я постоянно повторяю эти поля. Не уверен, что модуль, класс или что-то еще. Если вы не возражаете, я спрашиваю, у меня также есть другой вопрос: как вы создаете функцию, которая выполняется после создания всей базы данных? Например, после создания базы данных и всех ее таблиц я хотел бы добавить некоторые виды. Как мне это сделать? –

+0

Сделал для этого ответ. Отметьте, как правильно, если вам это нравится, надеюсь, что я смог помочь. –

ответ

0

Ну, теперь я понимаю, что вы говорите. Это свойства рельсов, которые создаются автоматически. Я не уверен, есть ли способ предотвратить это, но это определенно полезно во многих ситуациях. Я предлагаю вам сохранить их, вы выясните их использование, когда узнаете больше о Rails.

Что касается представлений, вам необходимо создать метод контроллера и определить маршрут к этим методам внутри config/routes.rb. Я предлагаю вам узнать больше о шаблоне рельсов MVC. MVC - это ядро, в котором построены Rails.

http://guides.rubyonrails.org/ - отличный сайт для изучения рельсов. Попробуйте прочитать только несколько статей, и вы сможете понять достаточно, чтобы быстро создать полное приложение.

+0

Как бы вы это сделали, если бы я работал в Синатре? –

+0

У меня недостаточно знаний о Синатре, чтобы ответить на это. Несмотря на то, что я знаю, как это работает, и как это должно быть сделано, я думаю, что лучше всего искать учебники и книги через Интернет –

0

Я делаю что-то подобное. Я использовал наследование следующим образом:

require 'rubygems' 
require 'dm-core' 
require 'dm-migrations' 
require 'dm-constraints' 

DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/development.db") 
DataMapper::Property::String.length(255) 

class BaseTable 
    include DataMapper::Resource 
    property :id, Serial 
    property :created_date, DateTime, :default => DateTime.now 
    property :created_by, Integer 
    property :updated_date, DateTime, :default => DateTime.now 
    property :updated_by, Integer 
end 

class User < BaseTable 
    property :userid, String 
    property :email, String 
    property :password, String 
end 

class Account < BaseTable 
    property :name, String 
    property :type, String 
    property :location, String 
    property :account_number, String 
    property :total_balance, Integer 
    property :cleared_balance, Integer 
    property :marked_as_cleared_balance, Integer 
    has n, :transactions, :constraint => :destroy 
end 

class Transaction < BaseTable 
    property :id, Serial 
    property :label, String 
    property :cleared, Boolean 
    property :date, Date 
    property :description, String 
    property :amount, Integer 
    property :note, String 
    property :balance, Integer 
    belongs_to :account 
end 

DataMapper.finalize 
DataMapper.auto_upgrade! 
Смежные вопросы