친구에게 고객 URL을 초대 할 수있는 기능을 구축하려고합니다. 내 사용자 모델에 열을 추가하여 사용자가 가입 할 때 링크가 공유 될 때 다시 추적 할 고유 토큰을 제공합니다.초대 친구 링크 설정
User.rb :
www.nameofsite.com/r/[referer_url]
: 나는 다음 URL을 친구에게 초대장을 보내드립니다 우편물을 설정def set_referer_url begin self.referer_url = rand(36**8).to_s(36) end while User.exists?(:referer_url => self.referer_url) end
다음과 같이
나는 경로를 설정 한 :
match '/r/:referer_token' => 'users#new'
내 사용자 모델에 referer라는 열이 있습니다.이 열은 사용자가 다른 사용자의 초대 링크를 통해 가입했는지 기록하고 싶습니다. 그렇다면, 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. 이것은 일어나지 않는 것 같습니다. referer_token의 매개 변수가 양식을 통과하고 있다고 생각하지 않아서 referer의 ID를 저장할 수 있습니다. 이 문제를 어떻게 해결할 수 있습니까?
나는 야를 당신이 setter에서'referer_url'라는 속성 이름을 사용하는 이유에 대해 혼란 스럽지만'attr_accessible'리스트에'referer_token'을 가지고 있습니다. 또한 Firebug 또는 Chrome에 내장 된 "Inspect Element"도구를 사용하여 숨겨진 필드를 살펴 보았습니까? – iwasrobbed
– Alex
리퍼러 토큰이 제출하지 않는 것 같습니다. 나는 일단 양식이 제출되면 제대로 받아들이지 않을지 말할 수 없습니다. – Alex