ruby on rails -为什么这里没有生成链接?



在我的signeduser模型中有这两个方法:

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。也许是因为我没有保存它?我如何修复方法?

看起来好像你忘记保存你的赋值结果,当对象被丢弃时它就丢失了。

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

false作为参数传递给save避免运行验证,并且基本上强制保存。这可能有助于处理用户记录无效的情况,例如由于某种原因将新需求强加于旧记录,但无论如何您都想保存此更改。

相关内容

  • 没有找到相关文章

最新更新