很抱歉,如果这是一个超级苛刻的问题,但我一直试图找出这个解决方案一段时间。
基本上,我有一个表格要求一段时间。目前它在浮动中接受数字作为月份,因此如果您想在15天内放入,则必须输入“0.5”。我添加了一个无线电字段,允许用户选择一种类型(数月或数天)。
我尝试添加
if params[:length_type] == "days"
params[:length] = params[:length]/30
end
到控制器,但我意识到即使参数正在改变(如调试器中所示),它首先被提交,这意味着如果用户选择了15天,它仍然会被提交为15个月。
接下来,我尝试将此代码添加到before_create中的模型中,在那里我被告知:
未定义的局部变量或方法`params'for ...
我查了一下,显然在模型中无法访问参数,如果它们更多,它会打破MCV练习。
我很困惑从哪里开始,所以任何帮助都会受到赞赏。
感谢您抽出宝贵时间阅读我的问题。
(顺便说一句,我不想在JS中这样做,因为我担心它会在用户计算机上关闭,除非有办法解决这个问题吗?)
答案 0 :(得分:1)
在调用 thing.update 方法之前,您需要在控制器中的更新方法中执行操作(更改参数)。如果记录存在,则执行此操作。如果是新记录,则在调用 thing.save 之前,您需要在控制器创建方法中执行相同的操作。