微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用new方法填充表单

如何解决用new方法填充表单

| 问题解决了。 HTML5 localStorage让我感到困惑。 我正在尝试使用new()方法中的参数填充表单,但无法使其正常工作。 每个用户都有保存在数据库中的表单的认值(在名为defaults的表中),当您创建新记录时,我希望使用该表中的值来填充它。
@default = Default.find_by_user_id(current_user.id)
@invoice = Invoice.new(:title => @default.title,:company_information => @default.company_information)

render \'create\'
然后我认为:
form_for @invoice,:url => { :action => \"create\"} do |f| ...
发生的情况是创建了发票的认值,而不是在new()方法中创建的值。 最奇怪的部分是,当我在页面加载后检查源代码时,输​​入值属性填充有正确的信息,但未呈现在页面上...     

解决方法

您在这里做什么:
Invoice.new(:title => @default.title,:company_information => @default.company_information)
是有道理的,应该起作用……除非这些领域受到保护,以防大规模分配。
class Invoice << ActiveRecord::Base
  attr_accessible :some,:other,:fields
  ...
end
这将允许您在初始化Invoice对象时设置ѭ4,,但是它将阻止您设置任何其他\“ attributes \”。     ,奇怪,我没有发现您要执行的操作有问题...也许浏览器方面的某些内容(javascript,css等)使事情变得毫无意义? 检查表单输入中是否有可选内容,或者尝试创建没有任何JavaScript或CSS的普通表单。或者,您甚至可以尝试使用以下方式在html中简单地打印属性的内容(不使用input / textarea标记):
<%= @invoice.title %>
这至少将有助于确认确实设置了默认值。此外,使用:
<%= f.object.title %> # place me inside the form_for block
将帮助您确认表单构建器实例也具有正确的值。 祝好运。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。