新手问题 请问如果使用 form_for 的话,要怎么在提交表前修改 params 的内容呢 (string convert to datetime)

n00b1 · 2013年12月26日 · 1867 次阅读

我提交的表单中有两个 datetime 值 starts_at 和 ends_at

在表单中我用了 bootstrap-datetimepicker-rails 这个 gem,提交出来的样子:

{"utf8"=>"✓",
 "authenticity_token"=>"zXx7SbNwHcGx1zHiQrNXMo9CLJx/xnhBfiXVv+Pw5HQ=",
 "request"=>{"description"=>"test",
 "starts_at"=>"12-17-2013 01:28 PM",
 "ends_at"=>"12-25-2013 01:28 PM",
 "commit"=>"Submit"}

但得到了argument out of range的报错,我初步估计是因为提交的 starts_at 和 ends_at 是 string 而非 datetime 值

我想用将其在提交前转换成标准的 datetime 值

DateTime.strptime("06/18/2013", "%m/%d/%Y")

但在 controller 中需要将这行转行代码加入到哪里呢?由于是 rails 4 的项目,所以用的是 strong parameters Post.create(post_params),是将转换的操作放到 strong parameters 中吗?

private

def post_params
  params.require(:post).permit(:description, :starts_at, :ends_at)
end
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号