ruby-on-rails – 如何使用Form_For更新模型中的哈希属性

ruby-on-rails – 如何使用Form_For更新模型中的哈希属性,第1张

概述一个快速警告:我对Rails很陌生,而且我的知识有些奇特.我知道如何做某些事情,但我缺乏对他们为何总能奏效的重要理解. 我目前有一个用户模型,其中包含大量信息,如地址,电子邮件等.此外,它还有一个名为visible的哈希.该散列中的键是每条信息,并且对于用户是否希望该信息是公开可见的,该值是真还是假.虽然我不确定这是否是最好的方法,但我想不出除了为每一位信息制作一大堆布尔变量之外的任何其他方式.最 一个快速警告:我对Rails很陌生,而且我的知识有些奇特.我知道如何做某些事情,但我缺乏对他们为何总能奏效的重要理解.

我目前有一个用户模型,其中包含大量信息,如地址,电子邮件等.此外,它还有一个名为visible的哈希.该散列中的键是每条信息,并且对于用户是否希望该信息是公开可见的,该值是真还是假.虽然我不确定这是否是最好的方法,但我想不出除了为每一位信息制作一大堆布尔变量之外的任何其他方式.最后,我序列化:在数据库中可见存储

我想要的是在我的编辑视图中,在每个信息字段旁边都有一个复选框,表示可见属性.在阅读了与此主题相关的大量其他帖子并尝试了大量的代码变体后,我总是会遇到某种错误.对我来说最直观正确的代码如下:

<%= form_for(@user,:ID => "form-info-personal") do |f| %>...<%= f.label :name %><%= f.text_fIEld :name %><%= f.check_Box :visible[:name] %>

但是我收到一条错误消息,指出无法将符号解析为整数.我不确定这个解析在哪里发生,除非它的查看:作为数组可见并尝试使用:name作为索引.

如果这个问题很简单/看似荒谬/缺乏重要信息等,我会提前道歉.任何提示,建议,链接,或者你会非常感激的是什么,即使他们是在“你从根本上做错了,回去做这样的事情”.

-缺口

解决方法 Rails 3.2引入了一个 nice addition to ActiveRecord,它允许您在单个字段中存储任意设置.

class User < ActiveRecord::Base  store :settings,accessors: [ :color,:homepage ]endu = User.new(color: 'black',homepage: '37signals.com')u.color                          # Accessor stored attributeu.settings[:country] = 'Denmark' # Any attribute,even if not specifIEd with an accessor

所以,你的代码看起来像这样:

# modelclass User < ActiveRecord::Base  store :settings,accessors: [ :name_visible,:email_visible ]end# vIEw<%= f.label :name %><%= f.text_fIEld :name %><%= f.check_Box :name_visible %>
总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何使用Form_For更新模型中的哈希属性全部内容,希望文章能够帮你解决ruby-on-rails – 如何使用Form_For更新模型中的哈希属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1289581.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存