2014-11-08 64 views
0

我已經在我的lib -folder是由模塊extend創建了一個類Formular,這也被分配在我lib -folder:把相同的代碼放在哪裏?混入?

它看起來是這樣的:formular.rb

class Formular 
    extend Userfield 
    def self.ueberweisung 
    .................. 
    pdf = Prawn::Document.new(:page_size => [width,height], :margin => 0) 
    pdf.image image_path, :at => [w, height], :fit => [width,height] 

    create_userfield 

    pdf.stroke_line [w + 9.1.mm, h - 60.mm], [w + 14.2.mm, h - 65.mm] 
    .................. 

create_personenfeld定義userfield.rb

module Userfield 
    def create_userfield 
     pdf.font("Courier", :size => 12) do 
     pdf.draw_text "Thanks for your help", :at => [w + 11.mm, h - 13.mm] 
     .......... 

假設我成爲一個錯誤,因爲pdf不是defineddef create_userfield

undefined local variable or method `pdf' for Formular:Class 

現在我的問題是我應該把這種方法放在哪裏?所以我不必將每個變量傳遞給它?

謝謝

回答

0

您還可以添加一個類變量稱爲PDF:

attr_accessor :pdf 

它將在類的所有方法之間共享,您將能夠爲您的PDF調用的@pdf 。

實施例:

> module Animal 
> def say 
     @word 
> end 
> end 
> class Doge 
> include Animal 
> attr_accessor :word 
> def initialize 
>  @word = 'such cool feature' 
> end 
> end 

> dog = Doge.new 
> dog.say 
=> 'such cool feature'