Является ли токен основным методом Rails? - Рельсы 3 - PullRequest
0 голосов
/ 31 марта 2011

Я пытаюсь сгенерировать уникальный токен, используя этот учебник: http://snippets.dzone.com/posts/show/6434

Но я получаю это сообщение об ошибке при попытке:

undefined method `token=' for #<Stage:0x00000102a13aa8>

Это то, что моя модель Stageвыглядит так:

# == Schema Information
# Schema version: 20110131093541
#
# Table name: stages
#
#  id         :integer         not null, primary key
#  project_id :integer
#  user_id    :integer
#  name       :string(255)
#  stage_num  :integer
#  created_at :datetime
#  updated_at :datetime
#


class Stage < ActiveRecord::Base

  belongs_to :project
  #has_and_belongs_to_many :users

  has_many :uploads, :dependent => :destroy, :order => 'created_at DESC'
  has_many :comments, :dependent => :destroy

    #this is where the token is generated for the client
    def generate_client_token(length=25)
    alphanumerics = ('a'..'z').to_a.concat(('A'..'Z').to_a.concat(('0'..'9').to_a))
    self.token = alphanumerics.sort_by{rand}.to_s[0..length]

        #Ensure uniqueness of the token..
        generate_client_token unless Stage.find_by_token(self.token).nil?       
    end 

end

На мой взгляд, я вызываю этот метод следующим образом:

<%= @stage.generate_client_token %>

Мысли?

1 Ответ

3 голосов
/ 31 марта 2011

Вы не определили поле token в своей таблице stages. Вы можете сделать это, сгенерировав миграцию, которая имеет:

add_column :stages, :token, :string

Или просто запустив миграцию, которая уже имеет это (если она есть)

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