-1

我正在尝试为我的 rails 应用程序重命名电子邮件输入的路由。目前,当有人输入他们的电子邮件时,它会将他们路由到 /:controller/:id 我想这样做,一旦他们输入他们的电子邮件,它就不会显示他们的 ID,因此他们无法更改 ID 号并查看其他人的电子邮件.

4

2 回答 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 回答