繁体   English   中英

Ruby Rails模型属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM