【发布时间】:2014-02-06 18:03:03
【问题描述】:
这里是 Ruby on Rails 的相对新手。
在我的SomeobjController#new 操作的视图中使用标准的form_for 方法
= form_for @someobj do |f|
.
.
.
%p.submits
= f.submit "Submit", :class => "submit"
会生成一个提交param[] 数组,其中包含表单中设置的所有字段的@someobj 哈希,这样
param[someobj] => { "field1" => "val1", "field2" => "val2", ... }
我更愿意为SomeobjController#create 设置一个不同的值,即someobj.to_s 到param[someobj] 的结果,这样
param[someobj] => "strvalfromtos"
我怀疑它是相对的,但以防万一,这个 #new 操作的基础模型在数据库中不是持久的(即,Someobj 不是从 ActiveRecord::Base 派生的,尽管 ActiveModel 的某些部分包括在内。)
直到调用#create 之后,我才尝试调整它,但是我想修改从#new 到#create 的提交。我不清楚我是否应该更多地关注form_for 语句或在控制器中做一些特别的事情(我猜form_for 是正确的焦点)。
而且,是的,这整件事对我来说可能有点强迫症,但实际的字段名很长(适合模型),但#create 所需的数据非常少。
假设someobj.to_s已经写好了,有没有相对轻松的方法?
非常感谢, 理查德
【问题讨论】:
-
你在使用 Rails 4 吗?
-
你的问题不清楚。你是说你想要改变参数哈希的值? params 散列的目的是从表单中传递数据。您是说要获取表单数据,将其转换为某种字符串,然后提交吗?
-
对不起,Rails 3.2.16。是的,我想我是这么说的,但你的问题有助于我更好地澄清它。我一直认为它更像是另一个参数,但考虑到这种情况似乎仍然合适。
-
@Beartech,也感谢您的帮助。我很感激你的 cmets。
标签: ruby-on-rails ruby form-for