我有两个字段,first_name和brand_name。用户在登录期间输入first_name。如果他是所有者,则输入brand_name。默认情况下,brand_name在用户创建帐户时等于first_name。用户可以稍后更改。
为此我在User模型中编写了这个方法,
def brand_name
first_name
end
但是,尽管用户输入了不同的brand_name,但它将brand_name设置为first_name。我试着这样做:
def brand_name
if brand_name.nil?
first_name
else
brand_name
end
end
但是给出了错误--SystemStackError:
stack level too deep
有人可以帮忙解决这个问题吗?
答案 0 :(得分:4)
您的方法调用自身,这会导致无限递归。像这样重写你的方法:
def brand_name
self[:brand_name].present? ? self[:brand_name] : first_name
end