{"id":36869,"date":"2022-12-21T05:50:55","date_gmt":"2022-12-21T05:50:55","guid":{"rendered":"https:\/\/www.railscarma.com\/?p=36869"},"modified":"2023-01-03T11:06:32","modified_gmt":"2023-01-03T11:06:32","slug":"ruby-on-rails-7%e3%81%ae%e6%96%b0%e6%a9%9f%e8%83%bd","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/ruby-on-rails-7%e3%81%ae%e6%96%b0%e6%a9%9f%e8%83%bd\/","title":{"rendered":"Ruby on Rails 7 \u306e\u65b0\u6a5f\u80fd"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"36869\" class=\"elementor elementor-36869\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0e8f4b3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0e8f4b3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b38c661\" data-id=\"b38c661\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-935f688 elementor-widget elementor-widget-text-editor\" data-id=\"935f688\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Rails \u306e\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u3082\u3046\u3059\u3050\u767b\u5834\u3057\u307e\u3059\u3002\u73fe\u6642\u70b9\u3067\u306f\u767a\u58f2\u65e5\u306f\u672a\u5b9a\u3067\u3059\u304c\u3001\u30af\u30ea\u30b9\u30de\u30b9\u524d\u306b\u306f\u767a\u58f2\u3055\u308c\u308b\u4e88\u5b9a\u3067\u3059\u3002\u3053\u306e\u8a18\u4e8b\u306e\u516c\u958b\u6642\u70b9\u3067\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306f 7.0.0.rc1 \u3067\u3059\u3002\u304a\u3044\u3001 <a href=\"https:\/\/github.com\/\">\u30ae\u30c3\u30c8\u30cf\u30d6<\/a>\u3001Shopify\u3001\u304a\u3088\u3073 <a href=\"https:\/\/basecamp.com\/\">\u30d9\u30fc\u30b9\u30ad\u30e3\u30f3\u30d7<\/a> \u3059\u3079\u3066\u5b9f\u7a3c\u50cd\u74b0\u5883\u3067 Rails 7 \u30a2\u30eb\u30d5\u30a1\u3092\u5b9f\u884c\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u30ea\u30ea\u30fc\u30b9\u5019\u88dc\u3067\u3042\u3063\u3066\u3082\u5b89\u5b9a\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u671f\u5f85\u3067\u304d\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u3053\u306e\u6295\u7a3f\u306e\u76ee\u7684\u306f\u3001Rails 7 \u306b\u3088\u3063\u3066\u3082\u305f\u3089\u3055\u308c\u308b\u65b0\u6a5f\u80fd\u3068\u5909\u66f4\u70b9\u306e\u3044\u304f\u3064\u304b\u3092\u691c\u8a0e\u3059\u308b\u3053\u3068\u3067\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><\/span><\/p>\n<h2>Ruby on Rails 7 \u306b\u4f55\u304b\u65b0\u3057\u3044\u3053\u3068\u306f\u3042\u308a\u307e\u3059\u304b?<\/h2>\n<p>\u6700\u65b0\u306e Ruby on Rails \u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u306f\u3001\u9a5a\u304f\u3079\u304d\u30a8\u30ad\u30b5\u30a4\u30c6\u30a3\u30f3\u30b0\u306a\u6a5f\u80fd\u304c\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\u3002 Rails\u4f5c\u6210\u8005\u306b\u3088\u308b\u3068 <a href=\"https:\/\/en.wikipedia.org\/wiki\/David_Heinemeier_Hansson\">\u30c7\u30d3\u30c3\u30c9\u30fb\u30cf\u30f3\u30bd\u30f3<\/a>, \u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u306f\u3001\u958b\u767a\u8005\u304c\u6700\u65b0\u306e Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u3082\u306e\u304c\u3059\u3079\u3066\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u30cf\u30f3\u30bd\u30f3\u6c0f\u306b\u3088\u308b\u3068\u3001\u3053\u306e\u30ea\u30ea\u30fc\u30b9\u306f\u30015\u3064\u306e\u7570\u306a\u308b\u5206\u91ce\u3067\u540c\u6642\u306b\u9032\u3081\u3089\u308c\u305f\u9577\u5e74\u306e\u9032\u6b69\u306e\u96c6\u5927\u6210\u3060\u3068\u3044\u3046\u3002 Ruby on Rails 7 \u304c\u63d0\u4f9b\u3059\u308b\u3082\u306e\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046<\/p>\n<h3>1. Webpack \u3084 Node \u306f\u5fc5\u8981\u3042\u308a\u307e\u305b\u3093\u3002<\/h3>\n<p>\u958b\u767a\u8005\u304c npm \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b Webpack \u3084 Nodejs \u3092\u6301\u3063\u3066\u3044\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002 ES6 \u3068 Babel \u3092\u7ffb\u8a33\u3057\u3066\u30d0\u30f3\u30c9\u30eb\u3059\u308b\u306b\u306f\u3001\u591a\u304f\u306e\u624b\u9806\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u30bf\u30b9\u30af\u306b\u306f Webpacker gem \u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u304c\u3001\u8ffd\u52a0\u306e\u8377\u7269\u304c\u767a\u751f\u3057\u3001\u5909\u66f4\u3059\u308b\u306e\u304c\u56f0\u96e3\u3067\u3057\u305f\u3002<\/p>\n<p><\/p>\n<p>importmaps-rails gem \u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u30de\u30c3\u30d7\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u4f9d\u5b58\u95a2\u4fc2\u3092\u66f4\u65b0\u3001\u56fa\u5b9a\u3001\u307e\u305f\u306f\u56fa\u5b9a\u89e3\u9664\u3059\u308b\u306b\u306f\u3001package.json \u306e\u30b3\u30fc\u30c9\u3092\u8a18\u8ff0\u3059\u308b\u4ee3\u308f\u308a\u306b .\/bin\/importmap \u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u305f\u3068\u3048\u3070\u3001date-fns \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u306b\u306f:<\/p>\n<p>$ .\/bin\/importmap \u30d4\u30f3 date-fns<\/p>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001config\/importmap.rb \u306b\u6b21\u306e\u3088\u3046\u306a\u884c\u304c\u81ea\u52d5\u7684\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u300cdate-fns\u300d\u5185\u3001\u300chttps:\/\/ga.jspm.io\/npm:date-fns@2.27.0\/esm\/index.js\u300d<\/p>\n<p>\u305d\u3057\u3066\u3001JavaScript \u3067\u306f\u3001\u3053\u308c\u307e\u3067\u3068\u540c\u3058\u3088\u3046\u306b\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u7d9a\u3051\u307e\u3059\u3002<\/p>\n<p>import { formatDistance, subDays } from &#039;date-fns&#039;<\/p>\n<p><br><\/p>\n<p>formatDistance(subDays(new Date(), 3), new Date(), { addSuffix: true })<\/p>\n<p>\/\/=&gt; \u300c3\u65e5\u524d\u300d<\/p>\n<p>\u3053\u306e\u69cb\u9020\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u4f5c\u6210\u3057\u305f\u5185\u5bb9\u304c\u30d6\u30e9\u30a6\u30b6\u3067\u8a8d\u8b58\u3055\u308c\u308b\u3082\u306e\u306b\u306f\u53cd\u6620\u3055\u308c\u306a\u3044\u305f\u3081\u3001\u3053\u306e\u70b9\u306b\u7559\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u73fe\u5728\u3001\u307b\u3068\u3093\u3069\u306e\u30d6\u30e9\u30a6\u30b6\u304c ES6 \u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u3053\u308c\u306f\u554f\u984c\u3042\u308a\u307e\u305b\u3093\u3002 JS \u3078\u306e\u5909\u63db\u306f\u3001JSK \u3068 Typescript \u306e\u5834\u5408\u306b\u306e\u307f\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<p>\u305f\u3068\u3048\u3070\u3001\u958b\u767a\u8005\u304c JSX \u3067 React \u3092\u4f7f\u7528\u3057\u305f\u3044\u5834\u5408\u306f\u3001webpack\u3001esbuild\u3001\u304a\u3088\u3073 rollup \u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u3053\u308c\u306f\u3001Rail 7 \u3092\u4f7f\u7528\u3059\u308b\u3068\u3059\u3050\u306b\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u9078\u629e\u3057\u305f\u6226\u7565\u306e\u3044\u305a\u308c\u304b\u3092\u4f7f\u7528\u3057\u3066\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3060\u3051\u3067\u3059\u3002<\/p>\n<p>$ .\/bin\/rails javascript:install:[esbuild|rollup|webpack]<\/p>\n<h3>2. \u6697\u53f7\u5316\u3055\u308c\u305f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5c64<\/h3>\n<p>Rail 7 \u3067\u306f\u3001\u958b\u767a\u8005\u306f ActiveRecord::Base \u306e encrypts \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u7279\u5b9a\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6697\u53f7\u5316\u3067\u304d\u307e\u3059\u3002\u521d\u671f\u8a2d\u5b9a\u3092\u884c\u3063\u305f\u5f8c\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u8a18\u8ff0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u30af\u30e9\u30b9 \u30e1\u30c3\u30bb\u30fc\u30b8 &lt; ApplicationRecord<\/p>\n<p>\u6697\u53f7\u5316:\u30c6\u30ad\u30b9\u30c8<\/p>\n<p>\u7d42\u308f\u308a<\/p>\n<p>\u6697\u53f7\u5316\u3055\u308c\u305f\u5c5e\u6027\u3068\u4ed6\u306e\u5c5e\u6027\u306e\u9593\u306b\u9055\u3044\u306f\u3042\u308a\u307e\u305b\u3093\u3002 Rails 7 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u81ea\u52d5\u7684\u306b\u6697\u53f7\u5316\u304a\u3088\u3073\u5fa9\u53f7\u5316\u3057\u307e\u3059\u3002<\/p>\n<p>\u305f\u3060\u3057\u3001deterministic: true \u30aa\u30d7\u30b7\u30e7\u30f3\u3092 encrypts \u30e1\u30bd\u30c3\u30c9\u306b\u6e21\u3059\u5834\u5408\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30af\u30a8\u30ea\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\u7d50\u679c\u3068\u3057\u3066\u3001\u6c7a\u5b9a\u8ad6\u7684\u30e2\u30c7\u30eb\u306f\u4ed6\u306e\u30e2\u30fc\u30c9\u306b\u6bd4\u3079\u3066\u5b89\u5168\u6027\u304c\u4f4e\u3044\u305f\u3081\u3001\u901a\u5e38\u306f\u7dca\u6025\u6642\u306b\u306e\u307f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/p>\n<h3>3. \u975e\u540c\u671f\u30af\u30a8\u30ea<\/h3>\n<p>\u958b\u767a\u8005\u304c\u30c7\u30fc\u30bf\u3092\u30af\u30a8\u30ea\u3059\u308b\u3068\u304d\u306b\u3001load_async \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u8907\u6570\u306e\u30af\u30a8\u30ea\u3092\u4e00\u7dd2\u306b\u5c0b\u306d\u308b\u3068\u3001\u6642\u9593\u3092\u7bc0\u7d04\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u3092\u4f7f\u7528\u3057\u3066\u4ee5\u4e0b\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>def PostsController<\/p>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u30a4\u30f3\u30c7\u30c3\u30af\u30b9<\/p>\n<p>@posts = Post.load_async<\/p>\n<p>@categories = \u30ab\u30c6\u30b4\u30ea.load_async<\/p>\n<p>\u7d42\u308f\u308a<\/p>\n<p>\u7d42\u308f\u308a<\/p>\n<p>2 \u3064\u306e\u30af\u30a8\u30ea\u304c\u540c\u6642\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u5404\u30af\u30a8\u30ea\u306b 200 \u30df\u30ea\u79d2\u304b\u304b\u3063\u305f\u5834\u5408\u30012 \u3064\u306e\u7d50\u679c\u3092\u30d5\u30a7\u30c3\u30c1\u3059\u308b\u5408\u8a08\u6642\u9593\u306f 400 \u30df\u30ea\u79d2\u3067\u306f\u306a\u304f 200 \u30df\u30ea\u79d2\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3>4. \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f Zeitwerk \u30e2\u30fc\u30c9\u3067\u306e\u307f\u5b9f\u884c\u53ef\u80fd\u3067\u3059\u3002<\/h3>\n<p>Rail 7 \u306e Zeitwerk \u30e2\u30fc\u30c9\u304c\u3059\u3079\u3066\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u7d4c\u55b6\u9663\u306f\u3001\u3053\u306e\u5909\u9769\u304c\u958b\u767a\u8005\u306b\u3068\u3063\u3066\u30b9\u30e0\u30fc\u30ba\u306b\u884c\u308f\u308c\u308b\u3053\u3068\u3092\u4fdd\u8a3c\u3057\u3066\u3044\u307e\u3059\u3002 Ruby on Rails \u30b3\u30fc\u30c9\u30ed\u30fc\u30c0\u30fc Zeitwerk\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304b\u3089\u30e2\u30b8\u30e5\u30fc\u30eb\u3084\u30af\u30e9\u30b9\u3092\u7c21\u5358\u306b\u30ed\u30fc\u30c9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3053\u308c\u306f\u3001gem \u306e\u4f9d\u5b58\u95a2\u4fc2\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306a\u3069\u3092\u8d77\u52d5\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u30a4\u30f3\u30d5\u30ec\u30af\u30bf\u30fc\u3001\u69cb\u6210\u3001\u30ed\u30ac\u30fc\u306f\u3059\u3079\u3066\u3001\u5404\u30ed\u30fc\u30c0\u30fc\u306b\u56fa\u6709\u3067\u3059\u3002 Zeitwerk \u30e2\u30fc\u30c9\u3068\u30af\u30e9\u30b7\u30c3\u30af \u30e2\u30fc\u30c9\u306e\u552f\u4e00\u306e\u9055\u3044\u306f\u3001\u3088\u308a\u512a\u308c\u305f\u8aad\u307f\u8fbc\u307f\u6226\u7565\u304c\u63d0\u4f9b\u3055\u308c\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n<h3>5. \u73fe\u5728\u3001Stimulus \u3068 Turbolinks \u304c UJS \u3068 Turbolinks \u306b\u53d6\u3063\u3066\u4ee3\u308f\u308a\u307e\u3059\u3002<\/h3>\n<p>Rails 7 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067 Stimulus \u3068 Turbo (Hotwire \u304b\u3089) \u304c\u4ed8\u5c5e\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002 Hotwire \u3067\u306f\u3001JSON \u3067\u306f\u306a\u304f HTML \u304c\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u7d4c\u7531\u3067\u9001\u4fe1\u3055\u308c\u308b\u305f\u3081\u3001\u958b\u767a\u8005\u306f\u6700\u5c0f\u9650\u306e JavaScript \u3067 Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u305d\u306e\u7d50\u679c\u3001\u30da\u30fc\u30b8\u306f\u8fc5\u901f\u306b\u8aad\u307f\u8fbc\u307e\u308c\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u30b5\u30fc\u30d0\u30fc\u4e0a\u3067\u540c\u6642\u306b\u5b9f\u884c\u3055\u308c\u3001\u958b\u767a\u8005\u306f\u751f\u7523\u7684\u306a\u958b\u767a\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 Turbo \u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30da\u30fc\u30b8\u306e\u5909\u66f4\u3092\u9ad8\u901f\u5316\u3057\u3001\u8907\u96d1\u306a\u30da\u30fc\u30b8\u3092\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306b\u5408\u7406\u5316\u3057\u3001WebSocket \u7d4c\u7531\u3067\u66f4\u65b0\u3092\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>Hotwire \u3068 Turbo \u306f\u3069\u3061\u3089\u3082\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9 \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3067\u3059\u3002 iOS \u304a\u3088\u3073 Android \u30c7\u30d0\u30a4\u30b9\u306b\u7d71\u5408\u3067\u304d\u307e\u3059\u3002 Turbo \u3068\u7d44\u307f\u5408\u308f\u305b\u305f Stimulus \u306f\u3001\u9ad8\u901f\u3067\u9b45\u529b\u7684\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n<h3>6. \u5358\u4e00\u30ec\u30b3\u30fc\u30c9\u3067\u30af\u30a8\u30ea\u3092\u30a4\u30f3\u30e9\u30a4\u30f3\u5316\u3059\u308b\u306b\u306f\u3001sole \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/h3>\n<p>\u30af\u30a8\u30ea\u304c\u5358\u4e00\u306e\u30ec\u30b3\u30fc\u30c9\u306b\u4e00\u81f4\u3059\u308b\u3053\u3068\u3092\u30a2\u30b5\u30fc\u30c8\u3059\u308b\u5834\u5408\u3001\u958b\u767a\u8005\u306f\u3001sole \u307e\u305f\u306f find_sole_by \u306e\u4ee3\u308f\u308a\u306b first \u307e\u305f\u306f find_by \u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>Product.where([\u201c\u4fa1\u683c = %?\u201d, \u4fa1\u683c]).sole<\/p>\n<p># =&gt; ActiveRecord::RecordNotFound (\u6307\u5b9a\u3055\u308c\u305f\u4fa1\u683c\u306e\u88fd\u54c1\u304c\u306a\u3044\u5834\u5408)<\/p>\n<p># =&gt; # (\u6307\u5b9a\u3055\u308c\u305f\u4fa1\u683c\u306e\u88fd\u54c1\u304c 1 \u3064\u306e\u5834\u5408)<\/p>\n<p># =&gt; ActiveRecord::SoleRecordExceeded (\u6307\u5b9a\u3055\u308c\u305f\u4fa1\u683c\u306e\u88fd\u54c1\u304c\u8907\u6570\u3042\u308b\u5834\u5408)<\/p>\n<p>user.api_keys.find_sole_by(\u30ad\u30fc: \u30ad\u30fc)<\/p>\n<p># \u4e0a\u8a18\u3068\u540c\u69d8<\/p>\n<h3>7. \u30b9\u30c8\u30ea\u30fc\u30e0\u751f\u6210\u30d5\u30a1\u30a4\u30eb\u306f\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u51e6\u7406\u3067\u304d\u307e\u3059\u3002<\/h3>\n<p>Rail on Ruby 7 \u306f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc \u30a2\u30af\u30b7\u30e7\u30f3\u5185\u3067 send_stream \u3092\u4f7f\u7528\u3057\u3066\u3001\u305d\u306e\u5834\u3067\u751f\u6210\u3055\u308c\u308b\u30d5\u30a1\u30a4\u30eb\u3092\u5408\u7406\u5316\u3057\u307e\u3059\u3002<\/p>\n<p>send_stream(\u30d5\u30a1\u30a4\u30eb\u540d: \u201csubscribers.csv\u201d) \u306f |stream| \u3092\u5b9f\u884c\u3057\u307e\u3059<\/p>\n<p>stream.write \u201cemail_address,updated_at\\n\u201d<\/p>\n<p>@subscribers.find_each \u306f |subscriber| \u3092\u884c\u3044\u307e\u3059<\/p>\n<p>stream.write \u201c#{subscriber.email_address},#{subscriber.updated_at}\\n\u201d<\/p>\n<p>\u7d42\u308f\u308a<\/p>\n<p>\u7d42\u308f\u308a<\/p>\n<p>Heroku \u306b\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3068\u3001\u958b\u767a\u8005\u306f\u5373\u6642\u307e\u305f\u306f\u90e8\u5206\u7684\u306a\u5fdc\u7b54\u3092\u53d7\u3051\u53d6\u308a\u3001\u4f55\u304b\u304c\u8d77\u3053\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u77e5\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h3>8. \u540d\u524d\u4ed8\u304d\u306e\u30d0\u30ea\u30a2\u30f3\u30c8<\/h3>\n<p><\/p>\n<p>Ruby on Rails 7 \u306f\u3001ActiveStorage \u3092\u4f7f\u7528\u3057\u305f\u547d\u540d\u30d0\u30ea\u30a2\u30f3\u30c8\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<br><br><\/p>\n<h3>\u7d50\u8ad6<\/h3>\n<p>Rails 7 \u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8\u306b\u306f\u3001\u30d0\u30b0\u4fee\u6b63\u3001\u6a5f\u80fd\u3001\u5909\u66f4\u306e\u5b8c\u5168\u306a\u30ea\u30b9\u30c8\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u73fe\u6642\u70b9\u3067\u306f\u5305\u62ec\u7684\u306a\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u8fd1\u65e5\u4e2d\u306b\u66f4\u65b0\u3055\u308c\u308b\u4e88\u5b9a\u3067\u3059\u3002<\/p>\n<p>Rails 7 \u306e\u6700\u7d42\u30ea\u30ea\u30fc\u30b9\u3067 Rails 6 \u4ee5\u4e0b\u3092\u307e\u3060\u5b9f\u884c\u3057\u3066\u3044\u308b\u5834\u5408\u3001Rails 6.1 \u306f\u30d0\u30b0\u4fee\u6b63\u3092\u53d7\u3051\u53d6\u3089\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Rails 5.2 \u306e EOL \u306f\u3001\u66f4\u65b0\u3092\u53d7\u3051\u53d6\u3089\u306a\u3044\u305f\u3081\u3001\u30b5\u30dd\u30fc\u30c8\u3082\u7d42\u4e86\u3057\u307e\u3059\u3002<\/p>\n<p>\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u697d\u3057\u3093\u3067\u304f\u3060\u3055\u3044\uff01 <a href=\"https:\/\/www.railscarma.com\/ja\/%e3%81%8a%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b\/\">\u63a5\u89e6<\/a> <a href=\"https:\/\/www.railscarma.com\/ja\/\">\u30ec\u30fc\u30eb\u30ab\u30fc\u30de<\/a> \u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\uff01<\/p>\n<div><br><\/div>\n<div><br><\/div>\n<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">\u95a2\u9023\u8a18\u4e8b<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Medical App Development: A Practical Guide (2027)\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-medical-app-development\/?related_post_from=41618\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/11\/Medical-App-Development.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Medical App Development\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/11\/Medical-App-Development.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/11\/Medical-App-Development-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/11\/Medical-App-Development-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/11\/Medical-App-Development-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Medical App Development: A Practical Guide (2027)\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-medical-app-development\/?related_post_from=41618\">\r\n        Medical App Development: A Practical Guide (2027)  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"What Is AngularJS Mobile App Development? A Complete Guide for 2026\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-angularjs-mobile-app-development\/?related_post_from=41580\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/What-Is-AngularJS-Mobile-App-Development.png\" class=\"attachment-full size-full wp-post-image\" alt=\"AngularJS Mobile App Development\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/What-Is-AngularJS-Mobile-App-Development.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/What-Is-AngularJS-Mobile-App-Development-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/What-Is-AngularJS-Mobile-App-Development-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/What-Is-AngularJS-Mobile-App-Development-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"What Is AngularJS Mobile App Development? A Complete Guide for 2026\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-angularjs-mobile-app-development\/?related_post_from=41580\">\r\n        What Is AngularJS Mobile App Development? A Complete Guide for 2026  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Top 10 Software Outsourcing Companies in India for 2026\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/top-software-outsourcing-companies-in-india\/?related_post_from=41569\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Top-10-Software-Outsourcing-Companies-in-India.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Top 10 Software Outsourcing Companies in India\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Top-10-Software-Outsourcing-Companies-in-India.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Top-10-Software-Outsourcing-Companies-in-India-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Top-10-Software-Outsourcing-Companies-in-India-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Top-10-Software-Outsourcing-Companies-in-India-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Top 10 Software Outsourcing Companies in India for 2026\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/top-software-outsourcing-companies-in-india\/?related_post_from=41569\">\r\n        Top 10 Software Outsourcing Companies in India for 2026  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Generative AI Development with Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/generative-ai-development-with-ruby-on-rails\/?related_post_from=41551\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Generative-AI-Development-with-Ruby-on-Rails.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Generative AI Development with Ruby on Rails\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Generative-AI-Development-with-Ruby-on-Rails.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Generative-AI-Development-with-Ruby-on-Rails-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Generative-AI-Development-with-Ruby-on-Rails-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/10\/Generative-AI-Development-with-Ruby-on-Rails-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Generative AI Development with Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/generative-ai-development-with-ruby-on-rails\/?related_post_from=41551\">\r\n        Generative AI Development with Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Rails \u306e\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u3082\u3046\u3059\u3050\u767b\u5834\u3057\u307e\u3059\u3002\u73fe\u6642\u70b9\u3067\u306f\u767a\u58f2\u65e5\u306f\u672a\u5b9a\u3067\u3059\u304c\u3001\u30af\u30ea\u30b9\u30de\u30b9\u524d\u306b\u306f\u767a\u58f2\u3055\u308c\u308b\u4e88\u5b9a\u3067\u3059\u3002\u3053\u306e\u8a18\u4e8b\u306e\u516c\u958b\u6642\u70b9\u3067\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306f 7.0.0.rc1 \u3067\u3059\u3002 HEY\u3001Github\u3001Shopify\u3001Basecamp \u306f\u3059\u3079\u3066\u5b9f\u7a3c\u50cd\u74b0\u5883\u3067 Rails 7 \u30a2\u30eb\u30d5\u30a1\u3092\u5b9f\u884c\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u30ea\u30ea\u30fc\u30b9\u5019\u88dc\u3067\u3042\u3063\u3066\u3082\u5b89\u5b9a\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u671f\u5f85\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u6295\u7a3f\u306e\u76ee\u7684\u306f\u3001Rails 7 \u306b\u3088\u3063\u3066\u3082\u305f\u3089\u3055\u308c\u308b\u65b0\u6a5f\u80fd\u3068\u5909\u66f4\u70b9\u306e\u3044\u304f\u3064\u304b\u3092\u691c\u8a0e\u3059\u308b\u3053\u3068\u3067\u3059\u3002 Ruby on Rails 7 \u306b\u4f55\u304b\u65b0\u3057\u3044\u3053\u3068\u306f\u3042\u308a\u307e\u3059\u304b?\u6700\u65b0\u306e Ruby on Rails \u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u306f\u3001\u9a5a\u304f\u3079\u304d\u30a8\u30ad\u30b5\u30a4\u30c6\u30a3\u30f3\u30b0\u306a\u6a5f\u80fd\u304c\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\u3002 Rails\u306b\u3088\u308b\u3068\u2026<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/generative-ai-development-with-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Generative AI Development with Ruby on Rails<\/span> \u3082\u3063\u3068\u8aad\u3080 \"<\/a><\/p>","protected":false},"author":1,"featured_media":36874,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1224],"tags":[],"class_list":["post-36869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What\u2019s New With Ruby on Rails 7 - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Let&#039;s take a look at what&#039;s new with Ruby on Rails 7 as this version includes everything developers need to create a modern web application.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/ruby-on-rails-7\u306e\u65b0\u6a5f\u80fd\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What\u2019s New With Ruby on Rails 7 - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Let&#039;s take a look at what&#039;s new with Ruby on Rails 7 as this version includes everything developers need to create a modern web application.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/ruby-on-rails-7\u306e\u65b0\u6a5f\u80fd\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-21T05:50:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-03T11:06:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"What\u2019s New With Ruby on Rails 7\",\"datePublished\":\"2022-12-21T05:50:55+00:00\",\"dateModified\":\"2023-01-03T11:06:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/\"},\"wordCount\":1011,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg\",\"articleSection\":[\"Blogs\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/\",\"url\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/\",\"name\":\"What\u2019s New With Ruby on Rails 7 - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg\",\"datePublished\":\"2022-12-21T05:50:55+00:00\",\"dateModified\":\"2023-01-03T11:06:32+00:00\",\"description\":\"Let's take a look at what's new with Ruby on Rails 7 as this version includes everything developers need to create a modern web application.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg\",\"width\":800,\"height\":300,\"caption\":\"What\u2019s New With Ruby on Rails 7\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What\u2019s New With Ruby on Rails 7\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ruby on Rails 7\u306e\u65b0\u6a5f\u80fd - RailsCarma - \u30aa\u30d5\u30b7\u30e7\u30a2\u958b\u767a\u306b\u7279\u5316\u3057\u305fRuby on Rails\u958b\u767a\u4f1a\u793e","description":"Ruby on Rails 7\u306e\u65b0\u6a5f\u80fd\u3092\u898b\u3066\u307f\u3088\u3046\u3002\u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u306f\u3001\u958b\u767a\u8005\u304c\u6700\u65b0\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u3082\u306e\u304c\u3059\u3079\u3066\u542b\u307e\u308c\u3066\u3044\u308b\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/ruby-on-rails-7\u306e\u65b0\u6a5f\u80fd\/","og_locale":"ja_JP","og_type":"article","og_title":"What\u2019s New With Ruby on Rails 7 - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Let's take a look at what's new with Ruby on Rails 7 as this version includes everything developers need to create a modern web application.","og_url":"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/ruby-on-rails-7\u306e\u65b0\u6a5f\u80fd\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2022-12-21T05:50:55+00:00","article_modified_time":"2023-01-03T11:06:32+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u57f7\u7b46\u8005":"admin","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"5\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"What\u2019s New With Ruby on Rails 7","datePublished":"2022-12-21T05:50:55+00:00","dateModified":"2023-01-03T11:06:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/"},"wordCount":1011,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg","articleSection":["Blogs"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/","url":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/","name":"Ruby on Rails 7\u306e\u65b0\u6a5f\u80fd - RailsCarma - \u30aa\u30d5\u30b7\u30e7\u30a2\u958b\u767a\u306b\u7279\u5316\u3057\u305fRuby on Rails\u958b\u767a\u4f1a\u793e","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg","datePublished":"2022-12-21T05:50:55+00:00","dateModified":"2023-01-03T11:06:32+00:00","description":"Ruby on Rails 7\u306e\u65b0\u6a5f\u80fd\u3092\u898b\u3066\u307f\u3088\u3046\u3002\u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u306f\u3001\u958b\u767a\u8005\u304c\u6700\u65b0\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u3082\u306e\u304c\u3059\u3079\u3066\u542b\u307e\u308c\u3066\u3044\u308b\u3002","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/12\/Whats-New-With-Ruby-on-Rails-7.jpg","width":800,"height":300,"caption":"What\u2019s New With Ruby on Rails 7"},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/fr\/blog\/quoi-de-neuf-avec-ruby-on-rails-7\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"What\u2019s New With Ruby on Rails 7"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - \u30aa\u30d5\u30b7\u30e7\u30a2\u958b\u767a\u306b\u7279\u5316\u3057\u305f Ruby on Rails \u958b\u767a\u4f1a\u793e","description":"RailsCarma \u306f\u30d0\u30f3\u30ac\u30ed\u30fc\u30eb\u306e Ruby on Rails \u958b\u767a\u4f1a\u793e\u3067\u3059\u3002\u5f53\u793e\u306f\u7c73\u56fd\u3068\u30a4\u30f3\u30c9\u3092\u62e0\u70b9\u3068\u3059\u308b\u30aa\u30d5\u30b7\u30e7\u30a2 Ruby on Rails \u958b\u767a\u3092\u5c02\u9580\u3068\u3057\u3066\u3044\u307e\u3059\u3002\u7d4c\u9a13\u8c4a\u5bcc\u306a Ruby on Rails \u958b\u767a\u8005\u3092\u96c7\u3063\u3066\u3001\u7a76\u6975\u306e Web \u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3092\u5b9f\u73fe\u3057\u307e\u3057\u3087\u3046\u3002","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"\u30ec\u30fc\u30eb\u30ab\u30fc\u30de","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"\u7ba1\u7406\u8005","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts\/36869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/comments?post=36869"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts\/36869\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/media\/36874"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/media?parent=36869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/categories?post=36869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/tags?post=36869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}