我对Rails还比较新,非常感谢任何帮助。我创建了以下方法:
def name_fix
name = self.split
mod_name = []
name.each do |n|
n.split("")
if n[0]
n.upcase
else
n.downcase
end
mod_name.push(n)
end
mod_name.join
end
我想在我的控制器中使用这个方法,如下所示:
def create
@patient = Patient.new(params[:patient])
@patient.name = params[:params][:name].name_fix
if @patient.save
redirect_to patients_path
else
render :new
end
end
我该如何完成这个任务?这个方法应该放在我的模型(Model)还是控制器(Controller)中?之前,我遇到了一个未定义的方法错误。
注意:我相信有更好的编写代码的方法。我也很感谢您提供帮助。
split
只能用于String
对象,所以如果传入的full_name
是nil
,它将无法工作。如果您只想在full_name
是String
时尝试使用它,可以尝试使用full_name.split.map(&:capitalize).join(" ") if full_name is_a?(String)
。 - user2490003full_name
是nil
?这意味着params[:name]
返回了nil
- 你需要决定是否这是有效的输入。如果不是,那么调用此控制器操作的任何内容都应确保它永远不会传递nil
对象。 - user2490003