Rails 4 - 将地址保存为数据库中的一列

2024-05-11

我是 Rails 新手,正在开发一个简单的应用程序。我的 ERD 中有一个名为 Client 的模型,并且希望保存每个客户的地址。

我最初的想法是将地址保存为单独的字段,即:

rails g model Client address_first:string address_second:string city:string ...

但这似乎效率很低。我确信一定有一种方法可以将地址保存为哈希、数组或者 JSON?我读过周围的内容,人们一直提到使用“序列化”,但我不确定是否以及如何在地址字段中实现它。

非常感激任何的帮助。

Thanks


这取决于您使用的数据库 - MySQL 和 Postgres 都有 JSON 列类型 - Postgres 还有一个名为 hstore 的哈希类型。

他们还有不同的选项用于在 hash/json 列内查询。虽然这些数据类型非常适合动态数据,但没有真正的性能提升(实际上可能会更慢)。

并且您不能将对象映射、验证等所有 Rails 优点用于存储在 hstore/json 列中的属性。

当谈到地址时,每个人都会天真地将其放入用户(或客户或客户)模型中,结果却发现在现实世界中您需要多个地址。

# == Schema Information
#
# Table name: clients
#
#  id         :integer          not null, primary key
#  created_at :datetime         not null
#  updated_at :datetime         not null
#

class Client < ActiveRecord::Base
  has_many :addresses
end


# == Schema Information
#
# Table name: addresses
#
#  id             :integer          not null, primary key
#  address_first  :string
#  address_second :string
#  street         :string
#  city           :string
#  country        :string
#  client_id      :integer
#  created_at     :datetime         not null
#  updated_at     :datetime         not null
#

class Address < ActiveRecord::Base
  belongs_to :client
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 4 - 将地址保存为数据库中的一列 的相关文章

  • Ruby on Rails:Cucumber:如何点击打开新窗口的链接?

    我有一个在新窗口中打开的链接 我需要测试该新窗口中的应用程序部分 任何建议将不胜感激 定义一个包含以下代码的步骤 page driver browser switch to window page driver browser window
  • 使用 ruamel.yaml,如何使带有 NEWLINE 的变量成为不带引号的多行

    我正在生成用作协议的 YAML 其中包含一些生成的 JSON import json from ruamel import yaml jsonsample id 123 type customer account other myyamel
  • 使用 Python 将 Json 转换为换行 Json 标准

    我有一个获取嵌套对象并删除所有嵌套的代码 使对象平坦 def flatten json y param y Unflated Json return Flated Json out def flatten x name if type x
  • React Native 中循环 Json 并显示

    How do I go about looping the result i retrieved from Json render function console log this state list contents
  • Rails 中多个模型的最佳实践 - 嵌套/非嵌套和验证

    笔记 根据布莱恩的评论 来自如何以 Rails 形式处理多个模型 https stackoverflow com questions 892624 how to handle multiple models in a rails form
  • 如何使用 RSpec 3.4 在视图规范中存根控制器辅助方法?

    我正在测试一个视图RSpec 3 4 上Rails4 2 5 我用的是体面的曝光我的 CRUD 控制器中的 gem 体面的曝光可以轻松定义可用于我的视图并记住结果值的命名方法 但我不明白如何在视图规范中存根这些方法 我尝试根据 RSpec
  • Android - 下载 JSON 数据并保存到共享首选项

    我正在从 PHP 服务读取 JSON 数据 每当该 JSON 的版本发生变化时 我想将其存储在 Android 上 用新数据替换旧数据 JSON 仅用于填充 Spinner 我的问题是 JSON 有 36KB 可以将其存储在共享首选项中有一
  • Struts2 中有多种结果类型?

    我有一个使用 Tiles 的 Struts2 应用程序 如何在操作映射中获取多种结果类型 因为我需要将de输出设置为JSON数据 并且同时Tiles 我努力了
  • VSTS部署IIS应用程序winrm并更改appsettings.json

    我正在使用 部署 IIS 应用程序 winrm 任务在另一台计算机上部署 IIS 应用程序 此任务部署 zip 文件 在此 zip 中有一个 appsettings json 其变量以下划线开头和结尾 我需要替换每个环境的 appsetti
  • ruby 管道、IO 和 stderr 重定向

    我希望有一个 ruby 程序 一个 rake 任务 观察另一个 rake 任务的输出 输出写入器输出到 stderr 我想读一下这些行 我很难设置它 如果我有一个作家 stdout writer rb 不断打印一些东西 usr bin en
  • PyQt:数据不可 JSON 序列化

    我是 PyQt GUI 的新手 我想获取a的数据QLineEdit文本框 为此我正在使用text 方法 我正在获取数据 但数据类型是QString 我需要将其作为 json 数据传输到服务器 为此我使用json dumps 方法 但我收到错
  • 从 Rails 3.1.3 升级到 Rails 3.2.1。资产错误

    我尝试将应用程序从 Rails 3 1 3 升级到 Rails 3 2 1 但资产出现问题 我有这样的错误 ActionController RoutingError No route matches GET assets logos op
  • 有没有办法避免自动更新 Rails 时间戳字段?

    如果您有数据库列created at and updated at当您创建和更新模型对象时 Rails 将自动设置这些值 有没有办法在不接触这些列的情况下保存模型 我正在引入一些旧数据 我想根据 不同名称的 旧数据字段中的相应值设置这些值
  • 如何在 Angular 2 karma jasmine 测试中从 JSON 文件加载模拟数据?

    我在写信业力茉莉花测试用例角2 我们遇到了在单独的 JSON 文件中模拟数据的需求 因为数据很大 希望确保代码整洁 为此我进行了很多搜索但没有找到合适的解决方案 我们已经使用以下方式模拟 HTTP 服务模拟后端 所以我们不能使用Angula
  • 将控制器操作处理为 JS 而不是 HTML

    所以我有以下形式 Follow 我试图
  • Python:json_normalize pandas 系列给出 TypeError

    我在 pandas 系列中有数万行像这样的 json 片段df json IDs lotId 1 Id 123456 date 2009 04 17 bidsCount 2 IDs lotId 2 Id 123456 date 2009 0
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 黄瓜与 RSpec

    我想开始深入研究 BDD 我以前从未使用过 TDD 现在 不确定我是否应该从学习 RSpec 开始 然后跳到 Cucumber 或者直接使用 Cucumber 我一直在互联网上阅读有关两者的内容 在我看来 Cucumber 可能是 RSpe
  • 保护 REST 和 JSON

    我想利用 RESTful 架构构建提供 JSON 数据的 Web 服务 但我只想要我自己的客户端应用程序可以从我的网络服务请求 基本上 我的 Web 服务包含不供公众使用的敏感数据 但我想以这种方式构建它 以便我可以构建连接到我的 Web
  • Rails 3 分页,will_paginate 与 Kaminari

    我的设置 Rails 3 0 9 Ruby 1 9 2 我正在为我的应用程序寻找分页解决方案 发现有一个新的宝石Kaminari与值得信赖的人相比will paginate 看起来像will paginate有一段时间没有更新了 但后来又以

随机推荐

  • Laravel 验证:对 null 的成员函数调用失败()

    这段代码几天前还可以工作 但我似乎做了一些事情导致它崩溃 我有这条路线 Route post admin routemanagement AdminController addRoute 看起来像这样 public function add
  • PHP 强制 Apache 错误

    感谢这个论坛 我了解到 PHP header 函数实际上并不将 header 发送到 Apache 服务器 而只发送到客户端 我想要做的是生成错误 500 并让 Apache 显示其相应的页面 有办法强制吗 提前致谢 还有 Allez le
  • android中类似的函数SwingUtilities.invokeLater?

    有时我觉得使用 AsyncTask 对于 该任务来说有点大材小用 我正在寻找类似的函数 比如 android 中的 SwingUtilities invokeLater 因为我只想执行一行代码 所以没有必要为此创建一个新类 也许您正在寻找
  • 使用 PHP 查询更改表,列名未显示在 phpMyAdmin 中

    这是我的第一篇文章 这里有一篇类似的文章 phpMyAdmin 不显示添加的列 代码日志 https stackoverflow com questions 12960302 phpmyadmin doesnt show added col
  • Qt 5.0.1:应用程序不会在 Qt 创建者之外执行

    我正在尝试运行程序 TransitTalker exe 这是我从 qt 编译的代码 如下图所示 https www dropbox com s ypgklrm4uschri5 filecontents png https www dropb
  • 订阅并在第一次操作后立即取消订阅

    我想订阅IObservable
  • NHibernate 忽略长度属性

    运行 SQL Profiler 后 我意识到 NHibernate 正在将字符串映射到nvarchar 4000 我通过指定修复了它type AnsiString and length 在 hbm 文件中 现在正在生成varchar 800
  • .gitlab-ci.yml yaml 内的数组变量

    我想在 gitlab ci cd yml 文件的变量中使用数组 如下所示 variables myarrray abc dcef script echo myarray 0 myarray 1 但 Lint 告诉我该文件不正确 variab
  • 如何使用 Angular4 进行 Codeigniter 视图?

    首先 我的 PHP Codeigniter 项目当前在服务器上运行 然后我在服务器上安装了最新的 Angular4 CLI Typescript 但我不知道如何与Codeigniter项目集成 如何像 AngularJS 一样在 Codei
  • 更改滚动时的 div 不透明度

    我怎样才能做到当你向下滚动页面时 下一个 DIV 会在前一个 DIV 之上淡出 我设置了这个小提琴来更好地说明它 http jsfiddle net meEf4 176 http jsfiddle net meEf4 176 例如 如果您位
  • 如何知道 Azure 函数是否正在插槽中运行

    函数可以知道它是否在槽中运行吗 我想阻止某个函数在 暂存 槽中执行 Updated 根据布鲁斯的回答 再次感谢朋友 我写了那篇博文http www frankysnotes com 2017 09 how to know when azur
  • 使用 tabLayout 时如何更改所选选项卡的文本样式?

    我想让选定选项卡的文本变为粗体 我怎样才能通过 xml 或 java 代码来做到这一点 无论哪种更容易 我稍微更改了上面建议的答案 它对我来说非常有用 不需要额外的 xml 文件 希望它会有所帮助 for int i 0 i lt tabL
  • Swift iOS 9.2 中的每日本地通知

    尝试快速发送每日本地通知 然而 由于某种原因 它只是每分钟发送一次 我希望第一个通知在应用程序打开后 30 分钟发送 然后每天重复此通知 在 swift fie 中我有以下代码 每日通知代码 同时在应用程序委托中添加部分 让 Date NS
  • 如何将 JTable 中的数据导出到 CSV

    我只是在启动一些代码从 JTable 中提取值时遇到问题 以便最终可以将它们作为 CSV 文件在 Excel 上查看 目前我有一个使用以下代码创建的 JTable package com alpha import javax swing i
  • 将 MIME 编码的附件发布到 Ariba Supply Network 时出现问题

    我在尝试使用 VB NET 和 WebRequest 对象发布一些 cXML 文本和附件时遇到问题 我相信我正在格式化我希望正确发布的数据文本 因为它与 Ariba 提供的示例相匹配 我不确定的是我是否正确使用 WebRequest 对象来
  • 启用远程访问neo4j 4.2社区版

    由于在家工作 我需要一种方法来监视远程 neo4j 实例 最好通过 Web 浏览器实例 在过去 例如在3 0中 它可以通过以下方式轻松实现修改单个配置行 https neo4j com developer kb how do i enabl
  • 如何动态更改JList中所选项目的背景颜色

    如何动态更改 JList 中选择的项目的背景颜色 像下面这样的东西应该有助于作为起点 public class SelectedListCellRenderer extends DefaultListCellRenderer Overrid
  • 如何为 Jsoup 添加代理支持?

    我是 Java 初学者 我的第一个任务是解析大约 10 000 个 URL 并从中提取一些信息 为此我正在使用Jsoup并且运行良好 但现在我想为其添加代理支持 代理也有用户名和密码 您可以轻松设置代理 System setProperty
  • 从 MVC 视图中的模型访问 displayName 属性

    如果我的模型有 DisplayName First Name public string firstName get set 然后我可以用 LabelFor 在视图中打印它 Html LabelFor model gt model acc
  • Rails 4 - 将地址保存为数据库中的一列

    我是 Rails 新手 正在开发一个简单的应用程序 我的 ERD 中有一个名为 Client 的模型 并且希望保存每个客户的地址 我最初的想法是将地址保存为单独的字段 即 rails g model Client address first