我的表项目中有 3 列。名字、姓氏和全名。
<%= f.hidden_field :first_name, :value => current_user.firstname %>
<%= f.hidden_field :last_name, :value => current_user.lastname %>
在用户保存项目的那一刻,用户的名字和姓氏被保存到不同的列中。我现在希望将名字和姓氏都保存到列全名中,以便以后搜索它们。
所以如果名字是
first_name = "Joe"
last_name = "Bloggs"
我怎么得到
fullname = "Joe Bloggs"
我试过这个,但它不起作用。
<%=f.hidden_field :fullname, :value => :first_name + :last_name %>
有人可以指出我正确的方向吗?我是 Rails 新手,所以在尝试提供帮助时请记住这一点。谢谢。
更新
现在我已将其添加到我的项目模型中:
def set_fullname
fullname = first_name + last_name
end
在我看来,我现在称之为:
<%= f.hidden_field :first_name, :value => current_user.firstname %>
<%= f.hidden_field :last_name, :value => current_user.lastname %>
<%= f.hidden_field :fullname, :value => @project.fullname %>
当我点击提交时,我检查日志,名字和姓氏像往常一样保存到表中,但全名是空白的。任何人都可以看到问题是什么?
更新2
看法:
<%= f.hidden_field :first_name, :value => current_user.firstname %>
<%= f.hidden_field :last_name, :value => current_user.lastname %>
<%= f.hidden_field :fullname, :value => @project.set_fullname %>
项目模型:
def set_fullname
fullname = first_name + last_name
end
当我尝试访问该页面时,我收到此错误。
undefined method `+' for nil:NilClass