Какую активную ассоциацию записей я использую в этом сценарии? - PullRequest
1 голос
/ 04 марта 2012

От новичка до рельсов, и мне трудно найти правильные отношения для использования.

У меня есть учетная запись и модель пользователя.Я хочу определить их отношения с помощью модели отношений.

Пользователь может владеть / модерировать / подписываться на множество учетных записей.Аккаунт может иметь много владельцев / модераторов / подписчиков.Отношения могут быть типа владелец / модератор / подписчик.

Я хочу иметь возможность создать учетную запись и пользователя одновременно с помощью accounts_controller.rb (псевдокод):

def new
    if signed_in?
        current_user.account.build
    else
        @account = Account.new
        @owner = Account.owner.build
    end
end

def create
    if signed_in?
        current_user.account.build
        current_user.save? redirect_to(current_user) ? render 'new'
    else
        if @account.save
            @user = Account.owner
            sign_in @user
            redirect_to @user
        else
            render 'new'
        end
    end
end
  1. Куда должен идти accepts_nested_attributes_for в модели пользователя или модели учетной записи?Это имеет значение, потому что я хочу иметь возможность создавать пользователя через учетную запись, а не учетную запись через пользователя.

  2. Будет ли это работать даже при наличии таблицы отношений?Можно ли это сделать с помощью has_many через?Это то, что сбивает меня с толку.Я понятия не имею, как должны выглядеть мои модели.

  3. Боюсь, мой дизайн отношений испорчен.Не уверен, что пользователь должен иметь только одну связь с учетной записью (владелец, или модератор, или подписчик) или несколько отношений с одной учетной записью (владелец и подписчик и модератор).

...