Rails 3.1rc1 to_param, from_param без эффекта? - PullRequest
2 голосов
/ 29 мая 2011

как я привык, я попробовал что-то вроде следующего в недавнем приложении Rails 3.1rc1:

class Foo < ActiveRecord::Base
  require 'digest/sha1'

  belongs_to :user
  after_create :set_uuid

  def set_uuid
    self.update_attribute :uuid, Digest::SHA1.hexdigest("#{APP_CONFIG[:salt]}_#{self.class}_#{self.id}")[0..14]
  end

  def self.from_param param
    self.find_by_uuid! param
  end

  def to_param
    self.uuid
  end

end

К сожалению, это, кажется, больше не имеет никакого эффекта. Когда я запрашиваю:

http://localhost:3000/foos/3a2c4aa7d42adf3

выдается следующий SQL:

SELECT "foos".* FROM "foos" WHERE "foos"."id" = ? LIMIT 1  [["id", "3a2c4aa7d42adf3"]]

Чтобы достичь своей цели, я мог бы просто:

set_primary_key 'uuid'

Я знаю, но я бы не решил эту проблему.

У кого-нибудь из вас есть какой-нибудь совет для меня? Спасибо заранее.

Felix

1 Ответ

0 голосов
/ 05 октября 2011

Вы уверены, что ваш контроллер звонит Foo.from_param(params[:id])? Если вы используете строительные леса, скорее всего, это нормально Foo.find(params[:id])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...