未定义的方法Rails

时间:2013-09-18 02:14:34

标签: ruby-on-rails ruby-on-rails-3 devise paperclip

大家好,模型中的Player.rb文件中的每个人都设置了这个..这样做很好。

before_create :generate_random_hex

  private
    def generate_random_hex
  rand(9999)
    end

    Paperclip.interpolates :random_hex do |attachment, style|
    attachment.instance.random_hex
    end

    has_attached_file :avatar, :styles => { :profile => "300x300", :thumb => "100x100#"},
    :url  => "/assets/people/:id/:style/:basename.:extension",
    :path => ":rails_root/public/assets/people/:id/:style/:basename_:random_hex.:extension"

    validates_attachment_size         :avatar, :less_than    => 2.megabytes # Solo aceptar imágenes menores a 2 Mb.
    validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif']

问题是我有其他控制器“更新”播放器的配置文件。

我为#“

收到此错误”未定义的方法`random_hex'

以下是我试图调用方法的方式,我认为我需要使用Player.generate_random_hex?

或我做错了什么?

include Wicked::Wizard
  steps :personal_information, :experience, :skills, :references_achievements, :personal_profile, :paypal

  def show
    @player = current_user.player
    @player.clubs.build
    @player.links.build
    @player.references.build
    @player.achievements.build
    @player.citizens.build
    render_wizard

    authorize! :show, :player_steps
  end

  def update

    case step
      when :personal_information
        params[:player][:language_ids] ||= []
      when :experience
        params[:player][:selection_ids] ||= []
    end

    @player = current_user.player
    @player.update_attributes(params[:player])
    render_wizard @player

    authorize! :update, :player_steps
  end

1 个答案:

答案 0 :(得分:0)

试试这个:

Paperclip.interpolates :random_hex do |attachment, style|
  attachment.instance.generate_random_hex
end

# without `private`
def generate_random_hex
  rand(9999)
end