Почему ссылка не генерируется здесь? - PullRequest
0 голосов
/ 03 мая 2011

У меня есть эти два метода в моей модели Signuser:

def build_invitation
  self.create_invitation
end

def generate_url
  self.invitation.invitation_url = "http://www.dreamstill.com/?id=#{self.invitation.id}"
end

У меня также есть пользовательская задача rake, которая вызывает эти два метода:

task :generate_url => :environment do
  SignedUser.all.each do |user|
    user.build_invitation
    user.generate_url
  end
end

Кажется, что хотя приглашениябыли созданы, URL не были созданы для приглашения.Может это потому что я его не сохранил?Как мне исправить метод?

1 Ответ

2 голосов
/ 03 мая 2011

Похоже, что вы забыли сохранить результат своего назначения, и он теряется при отбрасывании объекта.

task :generate_url => :environment do
  SignedUser.all.each do |user|
    user.build_invitation
    user.generate_url
    user.save(false)
  end
end

Передача false в качестве аргумента save избегает выполнения проверок и в основном вызывает сохранение. Это может помочь в ситуациях, когда запись пользователя недействительна, например, по какой-то причине новые требования накладываются на старую запись, но вы все равно хотите сохранить это одно изменение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...