[英]Ruby rails model attribute
我有一个模型表,其属性为Seat_1,Seat_2,Seat_3。
我在模型中有一个此方法:
def addplayer(seatno, playername)
case seatno.to_i
when 1
self.Seat_1 = playername.to_s
when 2
self.Seat_2 = playername
when 3
self.Seat_3 = playername
end
我真正想要的是使这种方法像这样
def addplayer(seatno, playername)
self.Seat_"#{seatno}" = playername
end
我该怎么写,所以Seat_x引用属性-这样我就可以避免“ case”方式。
#send
通常是要在运行时指定名称的动态调用方法时使用的名称。 在您的情况下,这可能有效:
def addplayer(seatno, playername)
send("Seat_#{seatno}=", playername)
end
一个好的方法是使用write_attribute
方法
def addplayer(seatno, playername)
write_attribute("Seat_#{ seatno }", playername)
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.