Я еще не совсем доволен этой реализацией, я хотел иметь собственный конструктор, который делает DirectoryIndex._make(next(os.walk(input_path)))
таким образом, что вы можете просто передать путь, в который вы хотите указать список файлов. Edits welcome!
import collections
import os
DirectoryIndex = collections.namedtuple('DirectoryIndex', ['root', 'dirs', 'files'])
for file_name in DirectoryIndex(*next(os.walk('.'))).files:
file_path = os.path.join(path, file_name)
Ассоциации обычно могут принимать хэш-код :conditions
, что может быть удобно. (И я забыл об этом, пока мне не понадобилось около получаса назад).
Помогло бы? Что-то вроде:
has_one :current_contract, :class_name => "Contract", :conditions => ...
Посмотрите на книгу немного больше (стр. 364):
has_one :current_contract, :class_name => "Contract", :order => 'created_at DESC'
... которая будет обратитесь к самому недавно созданному контракту. Конечно, у вас может быть более подходящая колонка.
Хотелось бы, чтобы я видел это раньше - мне нужно пойти и изменить код сейчас ...
Под «релевантным», вы имеете в виду последнее?
class Lending < ActiveRecord::Base
has_many :contract
attr_reader :current_contract
def initialize
@current_contract = Contract.New
end
...
end
class Contract < ActiveRecord::Base
has_one :lending
...
def before_delete
# update lending to the most relevant contract
# if this is the current_contract for parent lending
end
end