gpt4 book ai didi

ruby-on-rails - 从 params 哈希创建 Rails ActiveRecord 模型

转载 作者:行者123 更新时间:2023-12-03 22:30:47 26 4
gpt4 key购买 nike

大多数 Rails 教程展示了如何通过 params 散列填充模型类,如下所示:

class UsersController < ApplicationController   
def create
@user = User.create(params[:user])

# more logic for saving user / redirecting / etc.
end
end

如果您的模型中的所有属性都应该是字符串,这将非常有效。但是,如果某些属性应该是整数或日期或其他类型,会发生什么情况?

例如,假设 User 类看起来像这样
class User < ActiveRecord::Base
attr_accessible :email, :employment_start_date, :gross_monthly_income
end

:email 属性应该是一个字符串,:employment_start_date 属性应该是一个日期,而 :gross_monthly_income 应该是一个小数。为了使这些属性具有正确的类型,我是否需要更改 Controller 操作以使其看起来像这样?
class UsersController < ApplicationController  
def create
@user = User.new
@user.email = params[:user][:email]
@user.employment_start_date = params[:user][:employment_start_date].convert_to_date
@user.gross_monthly_income = params[:user][:gross_monthly_income].convert_to_decimal

# more logic for saving user / redirecting / etc.
end
end

最佳答案

根据ActiveRecord documentation ,应根据数据库中的列类型自动对属性进行类型转换。

关于ruby-on-rails - 从 params 哈希创建 Rails ActiveRecord 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com