lukaszkups
lukaszkups

Reputation: 5990

Initializing method defined in model in view

I've got a method in my generator model:

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

And I want it to put data variable in my view - but I don't know how initialize it in my view - I've tried:

<%= generate_pesel %>

But it doesn't work (NoMethodError) :/ How initialize it? Plz help.

Upvotes: 0

Views: 319

Answers (1)

Sergio Tulentsev
Sergio Tulentsev

Reputation: 230346

You should not directly reference models in your views.

Instead, create a variable in your controller

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

Then you can reference it in view

<%= @data %>

Upvotes: 1

Related Questions