在视图中定义的初始化方法

时间:2011-12-27 10:00:08

标签: ruby-on-rails-3 methods initialization

我的生成器模型中有一个方法:

def generate_pesel
    r1 = Random.new
    rok = r1.rand(1800...2299)
    r2 = Random.new
    miesiac = r2.rand(1...12)
    r3 = Random.new

    if (miesiac == 2)&&((rok%4==0)||(rok%400))
      dzien = r3.rand(1...29)
    else
      dzien = r3.rand(1...28)
    end

    if (rok >= 1800)&&(rok <= 1899)
      miesiac = miesiac + 80
    end 
    if (rok >= 2000)&&(rok <= 2099)
      miesiac = miesiac + 20
    end
    if (rok >= 2100)&&(rok <= 2199)
      miesiac = miesiac + 40
    end
    if (rok >= 2200)&&(rok <= 2299)
      miesiac = miesiac + 60
    end

    data = rok.to_s + miesiac.to_s + dzien.to_s
    puts data
  end

我希望它在我的视图中放置数据变量 - 但我不知道如何在我的视图中初始化它 - 我尝试过:

<%= generate_pesel %>

但它不起作用(NoMethodError):/ 如何初始化? Plz帮助。

1 个答案:

答案 0 :(得分:1)

您应直接引用视图中的模型。

而是在控制器中创建一个变量

def show
  @generator = Generator.new # or create it however you like
  @data = @generator.generate_pesel
end

然后你可以在视图中引用它

<%= @data %>