我正在尝试为我的 rails 应用程序重命名电子邮件输入的路由。目前,当有人输入他们的电子邮件时,它会将他们路由到 /:controller/:id 我想这样做,一旦他们输入他们的电子邮件,它就不会显示他们的 ID,因此他们无法更改 ID 号并查看其他人的电子邮件.
问问题
81 次
2 回答
0
编辑:
我正在尝试自己,如果它是电子邮件,这将不起作用,但是如果您使用没有特殊字符的用户名尝试它,它将正常工作!
尝试这样的事情:
路线:
match "/controller/:username" => "controller#show"
控制器:
def show
@user = find_by_username(params[:username])
end
于 2013-06-04T19:57:24.207 回答
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
于 2013-06-04T20:14:15.220 回答