我想重命名我的Rails應用程序的電子郵件輸入的路由。目前,當有人輸入他們的電子郵件時,它將它們路由到/:controller /:id 我想這樣做,使得一旦他們輸入了他們的電子郵件,它就不會顯示他們的ID,因此他們不能更改ID號並查看其他人的電子郵件。Rails重命名路由
-1
A
回答
0
編輯:
我是想我的自我,這不到風度如果電子郵件的作品,但如果你有一個用戶名,沒有特殊carracters嘗試它會正常工作!
嘗試這樣:
路線:
match "/controller/:username" => "controller#show"
控制器:
def show
@user = find_by_username(params[:username])
end
+0
我試過了,但是當他們輸入他們的電子郵件時,他們被路由到/ emailinputs /:id –
0
我想,用一些字母一個固定鏈接從另一個給安全電子郵件。假設你有人的模型。
你只需要一個屬性添加到people
,屬性名是permalink
嘗試運行
rails g migration add_permalink_to_peoples permalink:string
rake db:migrate
在people.rb
,玩before_save
class People < ActiveRecord::Base
attr_accessible :email, :permalink
before_save :make_it_permalink
def make_it_permalink
# this can create permalink with random 8 digit alphanumeric
self.permalink = SecureRandom.base64(8)
end
end
而且你routes.rb
match "/people/:permalink" => 'peoples#show', :as => "show_people"
上peoples_controller.rb
def show
@people = People.find_by_permalink(params[:permalink])
end
運行rails server
,並添加一個人。
人與隨機8位字母數字的唯一永久鏈接(例如/people/:permalink
)
例如:http://localhost:3000/people/9sd98asj
相關問題
- 1. Rails 3.2.1 - 重命名路由
- 2. Rails 3重寫命名路由
- 3. 在rails中重命名路由3
- 4. Rails 5重命名CRUD路由
- 5. Rails命名空間路由
- 6. AngularJS路由重命名
- 7. 在rails路由中的命名空間
- 8. Rails路由錯誤與命名空間?
- 9. Rails命名空間和路由
- 10. Ruby on Rails命名空間路由
- 11. Rails的:使用嵌套命名路由
- 12. rails使用link_to命名空間路由
- 13. Rails命名空間路由 - Windows vs Linux
- 14. Rails的教程 - 命名路由
- 15. rails中的命名空間路由1
- 16. Rails中的動態命名路由
- 17. 奇異命名路由on Rails的
- 18. Rails 3命名路由 - 無路由匹配
- 19. Rails的複雜的路由,更容易命名路由助手
- 20. 在rails中重命名路由(地圖,link_to,to_param)
- 21. Rails路由重定向子域名
- 22. Angular2命名路由
- 23. 無法獲取路由重命名URL
- 24. 用路由重命名zend模塊
- 25. Rails 3條中重命名路線
- 26. Rails - 重命名寧靜路線
- 27. Rails的路由錯誤使用命名空間 - 的命名空間路徑
- 28. 沒有路線匹配,對於rails 3中的命名路由
- 29. Rails路由名稱約定
- 30. Rails 3路由 - URL名稱?
「當有人輸入自己的電子郵件」 - >輸入在哪裏?你爲什麼不簡單地添加'before_filter'來限制它。 – kiddorails