Ruby on rails 3 正在初始化视图中的模型中定义的方法
我的生成器模型中有一种方法:Ruby on rails 3 正在初始化视图中的模型中定义的方法,ruby-on-rails-3,methods,initialization,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
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
def生成\u pesel
r1=随机。新
rok=r1.兰特(1800…2299)
r2=随机。新
miesiac=r2.rand(1…12)
r3=随机。新
如果(miesiac==2)和((rok%4==0)| |(rok%400))
dzien=r3.兰德(1…29)
其他的
dzien=r3.兰特(1…28)
结束
如果(rok>=1800)和&(rok=2000)和&(rok=2100)和&(rok=2200)和&(rok,您应该不要在视图中直接引用模型
相反,在控制器中创建一个变量
def show
@generator = Generator.new # or create it however you like
@data = @generator.generate_pesel
end
然后您可以在视图中引用它
<%= @data %>
我已经这样做了,但我有一个错误:“未定义的方法`generate_pesel` for nil:NilClass”:/您是否实例化了@generator
?是的,但我是在'new'方法中这样做的,我想在'show'方法中显示@data-我应该再次实例化它吗?是的,这是一个完全独立的方法。您应该再次实例化。当我初始化它时(@generator=generator.new),我有一个错误:“ActiveRecord::StatementInvalid in GeneratorsController#show”
<%= @data %>