Rails:生成链接并将其保存到数据库

时间:2015-12-22 15:08:16

标签: ruby-on-rails

在我的视图中的循环中,我有以下代码,它为每条记录组合了一些变量:

<% $theurl = newbrandurl + "/?utm_campaign=" + unique_id + "&utm_source=sales" %>

<%= link_to $theurl, class: "btn btn-success" do %>
 Order
<% end %>

但这仅限于我的观点。我想要做的是在将订单保存到数据库并将链接保存到数据库之后,在我的视图之外完成此操作。这可能吗?

编辑:

我的模特:

class Sale < ActiveRecord::Base
attr_accessible :url
after_create :save_link

 def save_link
  brandurl = Brand.where(:company => @sale.brand).pluck(:url)
  newbrandurl = brandurl.shift.strip
  unique_id = [@sale.token, @sale.created_at.strftime('%d%m%y-%H:%M:%SUTC')].join("&")
  self.save_link = newbrandurl + "/?utm_campaign=" + unique_id + "&utm_source=sales"
 end
end

1 个答案:

答案 0 :(得分:0)

您需要添加:after_create回调

Class ModelName < ActiveXXX
    attr_accessible :url # the attribute name for storing the link
    after_create :save_link

    def save_link
        self.save_link = newbrandurl + "/?utm_campaign=" + unique_id + "&utm_source=sales"
    end
end

但是,您需要添加对象数据(newbrandurl,unique_id),无论其来自其他来源是否相关