Динамическиое переключение между базами по хитрому

94 views
Skip to first unread message

Евгений Шурмин

unread,
Jun 17, 2013, 6:21:10 AM6/17/13
to ror...@googlegroups.com
Доброго времени суток всем. Есть такой код.

module Cloud
  class Base < ActiveRecord::Base
    self.abstract_class :true
    default = ActiveRecord::Base.connection_config
    establish_connection(default.merge(
      {
        :host => <???>
      }
    ))
  end

  class Cloud::Workspace < Cloud::Base
    validates :name, :server_id, :presence => true
    belongs_to :server
  end
end

class Server < ActiveRecord::Base
  validates :name, :status, :presence => true
  validates :host, :presence => true, :uniqueness => true
  has_many :cloud_workspaces, :class_name => 'Cloud::Workspace', :dependent => :restrict_with_exception
  audited_by User
  def self.pick_up
    order("RANDOM()").first
  end
end

Как сделать так чтоб при инициализации модели Cloud::Workspace было осуществлено подключение к БД к серверу через belongs_to а именно server.host?

Вот хочу решить такую задачку. Критика приветствуется. )))

Victor Z.

unread,
Jun 17, 2013, 10:05:37 AM6/17/13
to ror...@googlegroups.com
Первое что приходит в голову, что тут не нужно использовать belongs_to используйте метод, который возвращает scope. join всё равно сделать не удастся.

понедельник, 17 июня 2013 г., 18:21:10 UTC+8 пользователь Евгений Шурмин написал:

Евгений Шурмин

unread,
Jun 18, 2013, 9:54:07 AM6/18/13
to RubyOnRails to russian
Решил использовать в этом месте Mongoid с его кластеризацией. Благо в
этой тачти не нужно использовать транзакции.

17 июня 2013 г., 18:05 пользователь Victor Z. <vic...@zagorski.ru> написал:
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
> "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror...@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> ror2ru-un...@googlegroups.com
> Дополнительные варианты находятся на странице группы
> http://groups.google.com/group/ror2ru?hl=ru
> ---
> Вы получили это сообщение, так как подписаны на группу "RubyOnRails to
> russian".
> Чтобы отказаться от подписки на эту тему, перейдите на страницу
> https://groups.google.com/d/topic/ror2ru/H3Kl9Y6cRSA/unsubscribe.
> Чтобы отказаться от подписки на эту группу и все входящие в нее темы,
> отправьте электронное письмо на адрес ror2ru+un...@googlegroups.com.
> Настройки подписки и доставки писем:
> https://groups.google.com/groups/opt_out.
>
>



--
С уважением, Шурмин Евгений
Reply all
Reply to author
Forward
0 new messages