С помощью некоторых здесь я использую этот код для генерации токенов, купленных в моем приложении. Он перебирает в зависимости от того, сколько токенов упорядочено, вызывает метод с именем create_trackable_token
, который просто генерирует уникальную строку для идентификации токена. У меня есть два вопроса по этому поводу.
1) Как я могу переписать его, чтобы определенные столбцы не были подвержены массовому назначению? Прямо сейчас, если я использую 'attr_accessible` в этой модели, я должен раскрыть три атрибута в этом методе, потому что он назначает их сразу. Я бы предпочел не делать этого. Метод уже защищен, поэтому конечный пользователь не может его вызвать.
2) Как лучше всего обрабатывать ошибки? Токены должны быть уникальными, и сейчас я не уверен, что произойдет, если метод create_trackable_token
сгенерирует строку, которая уже используется. ActiveRecord
позаботится об этом или мне нужно написать какую-нибудь обработку ошибок в методе?
protected
def create_trackables
return unless self.success
order = Order.find(order_id) #you shouldn't need this line if it has_one :order
1.upto(order.total_tokens) do
Tracker.create!(
:user_id => order.user_id,
:token => Tracker.create_trackable_token,
:order_id => order_id
)
end
end