我正在尝试在rails4中的强参数下创建一个新方法,专门用于连接我的'first_name'
& 'last_name'
并将其重新定义为'full_name'
... attr_accessible
这很容易,但现在我有点失落。
任何人都可以告诉我如何进行此更改,以便将来可以致电'full_name'
以合并first_name
和last_name
吗?
谢谢!
答案 0 :(得分:2)
在user.rb模型中
def full_name
(first_name + " " + last_name).strip
end
然后使用用户的对象让我们说@user
当你调用这个方法时它将返回用户的全名,例如
@user.full_name
答案 1 :(得分:1)
在User
模型中,您可以这样做
def full_name
if first_name.present? && last_name.present?
"#{first_name} #{last_name}"
end
end
或强>
def full_name
return first_name.to_s.strip + ' ' + last_name.to_s.strip
end
您可以使用@user.full_name
这样的实例来调用它,该实例会显示用户的full_name
。
答案 2 :(得分:0)
强大的参数
Strong Params
只是将params hash中的特定元素传递给您的模型(如果您想将full_name
属性传递给模型,则只能使用此元素)
强大的params替换了Rails 4中的attr_accessible
;基本上允许您定义哪些参数通过控制器传递给模型。与发送的数据无关;只有你允许或不允许
如果您想设置 full_name
属性,请使用强参数,如下所示:
#app/controllers/users_controller.rb
Class UsersController < ApplicationController
private
def strong_params
params.require(:user).permit(:full_name)
end
end
<强>属性强>
您在模型中创建一个实例方法来处理其他两个属性
你必须记住Rails只需要数据对象&amp;创建一系列实例方法,使它们可以作为&#34;属性&#34;来访问。如果要显示full_name
,您可以在模型中定义公共实例方法以显示数据:
#app/models/user.rb
Class User < ActiveRecord::Base
def full_name
first_name + " " + last_name
end
end
希望这能为您解释。您可以使用RSB
的回答