所以,我有这个ruby文件,我想在我的rails项目中使用它,但我不知道从哪里或如何开始,我读过关于include和require的文章,有些网站告诉我使用require,有些网站使用include,甚至两者都使用,但仅此而已。我想知道把必要的代码放在哪里,如何使用文件的方法以及将文件放在项目目录的何处,因为我想从视图中调用它,但我不知道这是否是最好的,如果这是一个愚蠢的问题,我很抱歉,但rails对我来说仍然是新的。我感谢你能提供的所有帮助。谢谢你抽出时间。
我尝试使用的文件是Faustino Vasquez limon创建的将数字转换为单词的文件,它是一个完整的类:
numeros.rb
class Numlet
def initialize(numero)
@numero = numero.to_s.reverse.split("")
@i = 0
@j = 0
@parte1 = []
@parte2 = []
@especial = ""
@numlet = []
@bandera=0
@bandera1=0
@a =[["Uno","Dos","Tres","Cuatro","Cinco","Seis","Siete","Ocho","Nueve"],
["Diez","Veinte","Treinta","Cuarenta","Cincuenta","Sesenta","Setenta","Ochenta","Noventa"],
["Ciento","Doscientos","Trescientos","Cuatrocientos","Quinientos","Seiscientos","Setecientos","Ochocientos","Novecientos"]]
end
def especial
@numlet[@j] = case @especial
when "11"then "Once"
when "12"then "Doce"
when "13"then "Trece"
when "14"then "Catorce"
when "15"then "Quice"
when "16"then "Dieciseis"
when "17"then "Diecisiete"
when "18"then "Dieciocho"
when "19"then "Diecinueve"
when "21"then "Veintiun"
when "22"then "Veintidos"
when "23"then "Veintitres"
when "24"then "Veinticuatro"
when "25"then "Veinticinco"
when "26"then "Veintiseis"
when "27"then "Veintisite"
when "28"then "Veintiocho"
when "29"then "Veintinueve"
else return 0
end
end
def repetir
case @numero.length
when 0..3 then @parte1[0] = @numero[0..@numero.length]
when 4..6 then @parte1[0] = @numero[0..2];@parte1[1] = @numero[3..@numero.length]
when 7..9 then @parte1[0] = @numero[0..2];@parte1[1] = @numero[3..5]; @parte1[2] = @numero[6..@numero.length]
else return 0
end
end
def convierte
@bandera1=0
@i=0
case @bandera
when 1 then @numlet[@j]="mil";@j+=1
when 2 then (@parte2.length==1 and @parte2[0]==1) ? @numlet[@j]="millon" : @numlet[@j]="millones";@j+=1
end
@especial = [@parte2[@i+1],@parte2[@i]].to_s
if especial != 0
@i+=2
@j+=1
else
if @parte2[@i].to_s =="1"
@numlet[@j]="Un"
@i+=1
@j+=1
end
end
while @i < @parte2.length
if @parte2[@i].to_i ==0
@i+=1
@bandera1+=1
else
if @parte2.length != 1 and @bandera1 ==0
if @i == 1
@numlet[@j]="y"
@j+=1
end
end
@numlet[@j] = @a[@i][@parte2[@i].to_i-1]
if @i == 2 and @bandera1==2 and @numlet[@j]=="Ciento"
@numlet[@j]="Cien"
end
@j+=1
@i+=1
end
end
@bandera+=1
end
def termina
@numlet.reverse.join(" ")
end
def a_letra
if repetir != 0
@parte1.each do |@parte2|
convierte
end
print "#{termina}n"
else
print "Este numero no puede ser convertidon"
end
end
end
这就是我想从我的应用程序中使用的内容。谢谢你抽出时间。
由于它是您自己的类,并且您希望在Rails视图中使用它,因此有多种方法可以使用该代码。
我自己的方法,你可能会也可能不会选择这样做,就是将该文件包含在lib
目录中,然后将require
包含在你想要包含它的视图的帮助文件中。
这将允许您访问该文件中的方法和初始值设定项,并且您将能够在帮助程序中创建用于视图的方法。