У меня есть модель XslSheet, в которой я хотел бы изменить коллекцию, в которой она сохранена, на основе имени другой модели.
Я попытался создать метод внутри моей модели XslSheet, например:
def set_store_in(comp)
store_in collection: comp + "_xsl_sheets"
end
Затем я включил это в действие, в котором сохраняется модель:
stylesheet = XslSheet.new
stylesheet.set_store_in(@comp.name)
Это, похоже, не работает, поскольку моя модель сохраняется в коллекции по умолчанию 'xsl_sheets'.
Я также пробовал:
store_in collection: Company.where(:id=>User.current_user.current_scope['Comp']).pluck(:name)[0] + "_xsl_sheets" unless User.current_user.nil? or User.current_user.current_scope.nil?
Когда пользователь не вошел в систему, он возвращает nil, так как User.current_user.current_scope ['Comp'] равен nil.
Можно ли динамически установить коллекцию store_in, как я пытаюсь сделать?