0
我想建立一個功能,你可以邀請你的朋友與客戶的網址。我在我的用戶模型中添加了一個列,這樣當用戶註冊時,它將爲他們提供一個唯一的令牌,當鏈接被共享時會跟蹤他們。設置一個邀請朋友鏈接
User.rb:
def set_referer_url
begin
self.referer_url = rand(36**8).to_s(36)
end while User.exists?(:referer_url => self.referer_url)
end
我然後建立一個郵件將發送好友邀請與以下網址:
www.nameofsite.com/r/[referer_url]
我已經設置了路線如下:
match '/r/:referer_token' => 'users#new'
我在用戶模型中有一個名爲referer的列,我想記錄用戶是否通過某人的邀請鏈接註冊過。如果是這樣,那麼引用者列應該指定引用他們的人的用戶ID。
我對sign_up觀點如下:
<%= form_for @user, :as => :user, :url => {:controller => "users", :action => "create" } do |f| %>
<%= f.hidden_field :referer_token %>
<p>
<%= f.label :email %><br />
<%= f.text_field :email %>
...
在我的用戶模型中,我有以下嘗試引薦ID分配給新用戶:
def referer_token
User.referer_url if user
end
def referer_token=(token)
self.referer = User.find_by_referer_url(token).id
end
和
attr_accessible :email, :password, :password_confirmation, :referer_token
我認爲這會通過URL找到引用者的ID,並將其設置在列新用戶的推薦人。這似乎沒有發生。我不認爲referer_token的參數正通過表單傳遞,以便可以存儲引用者的ID。我怎樣才能解決這個問題?
我是有點困惑,爲什麼你在setter中使用'referer_url'屬性名稱,但是'attr_accessible'列表中有'referer_token'。此外,您是否嘗試過使用Firebug或Chrome內置的「檢查元素」工具查看隱藏字段? – iwasrobbed
– Alex
雖然引用令牌似乎並未提交。一旦提交表格,我無法判斷我是否沒有正確接受。 – Alex