Я перевожу приложение в ROR из PHP, который определяет объект, давайте назовем его «Документ», который может быть создан пользователем, который является зарегистрированным пользователем приложения, или анонимным пользователем, который дает только свою электронную почтуадрес (в этом случае без связанной учетной записи пользователя).Не требуется, чтобы посетитель создавал учетную запись пользователя, но он по-прежнему должен иметь возможность создавать документ.
В моей модели меня сначала приводят к созданию модели документа, которая ссылается на пользователя спринадлежит к ассоциации.Это, однако, не всегда так.В чистом SQL и PHP это не сложно, хотя оно сопряжено со своими проблемами, но я бы хотел смоделировать это «самым чистым» способом Ruby / Rails.
Если у посетителя нет ассоциированного пользователя, его адрес электронной почты будет сохранен непосредственно в объекте Document.
Чтобы начать обсуждение, здесь приведены фрагменты для каждой модели.
# user.rb
class User < ActiveRecord::Base
has_many :documents
end
# document.rb
class Document < ActiveRecord::Base
attr_accessible :title, :description, :email_address
belongs_to :user
end
Моя цель - получить все пользовательские документы, используя стандартную точечную запись:
user.documents
, а также проверить обратную связь, чтобы определить, принадлежит ли документ пользователю илиесли он содержит адрес электронной почты.
if document.user.nil? ...
if document.email_address.nil? ...
Я прочитал об отношении has_one, но не уверен, что это правильный путь для перехода.
Любая помощь или предложения будутоценил, спасибо!