Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

食べログ DevOps チームの @weakboson です。 この記事は Advent Calendar の7日目の投稿です。 X-Forwarded-For とは? Production 構成では Web アプリケーションが直接クライアントのリクエストを受けることはあまりないでしょう。Ruby on Rails もクライアントとの間に HTTP サーバを reverse proxy として配置して、レスポンスの gzip 圧縮、SSL 終端、静的なファイル配信は HTTP サーバに任せることが推奨されています。更に上流にはリクエストを複数の reverse proxy に分配する専用のロードバランサーが控えていることが多いでしょう。 このような proxy 構成では TCP/IP パケットの IP ヘッダにある送信元アドレスは一つ上流のサーバの IP アドレスになっており (※) アプ
【Rails】Geocoding APIを用いて高精度で緯度経度を算出し、Google Mapに表示する方法RubyRailsGoogleMapsAPIGeoCodingAPI 目標 ユーザーが登録した住所をマップの中心に表示し、マーカーを立てる。 開発環境 ・Ruby: 2.5.7 ・Rails: 5.2.4 ・Vagrant: 2.2.7 ・VirtualBox: 6.1 ・OS: macOS Catalina 前提 下記実装済み。 ・Slim導入 ・ログイン機能実装 ・Google Map表示 gem 'geocoder'だけでは精度が低い(番地指定が出来ない地域がある)為、 Geocoding APIを使用して高精度で住所から緯度経度を特定出来る様に実装していきます。 Geocoding API有効化 1.下記リンクにアクセス Google Cloud Platform 2. 「A
has_one :master, -> { where(is_master: true).with_deleted }, inverse_of: :product, class_name: 'Spree::Variant', autosave: true ... def find_or_build_master master || build_master end ... MASTER_ATTRIBUTES = [ :cost_currency, :cost_price, :depth, :height, :price, :sku, :weight, :width, ] MASTER_ATTRIBUTES.each do |attr| ->delegate :"#{attr}", :"#{attr}=", to: :find_or_build_master end ->delegate :
Rails触った事ないけどある日突然production.keyを作成する事になり四苦八苦したので記録。 Railsのproduction.keyとは production環境の暗号化されたファイルproduction.ymlを復号するためのキー。 暗号化されたファイルにはプロジェクトの機密情報が含まれ、暗号化されたファイルをバージョン管理し、キーはバージョン管理から外す。 production.ymlというのは作成時に環境を指定したからこの名前になっており、基本的にはcredentials.ymlというのが暗号化されたファイルの名称。 Credentialsの作り方(基本) 既存のキーの確認方法 下記のような感じで確認する $ EDITOR="vi" bin/rails credentials:show # aws: # access_key_id: 123 # secret_acces
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :memos has_one :profile end profiles_controllerにnewアクション、createアクションを定義 ここで大事なのは、1対1の関連の時はbuildではなくbuild_モデル名の書き方になる def new #@profile = curren
やり方 ①deviseを導入する。 ②password_digestカラムをencrypted_passwordにリネームする。 具体的には、以下のコマンドでuserモデルを変更する。 class RenamePasswordDigestColumnToEncryptedPassword < ActiveRecord::Migration def change rename_column :password_digest, :encrypted_password, :users #テーブル名の指定を忘れない!! end end やりたかったこと 既存システムのログイン周りを、bcryptを使用した全部手書きからdeviseログインに移行。DBのデータは引き継ぐ。 なんでしたかったの 2000人くらい登録者がいるサービスのログインとかセッションをdeviseに任せたくなった(初心者なので作っ
はじめに 注意書き 未経験初心者Rubyistがメモ同様の記事を書いているものなので間違っている部分やもっといい書き方の出来る部分があります(確信してます). がっつりまさかり投げてください.勉強させていただきます. 何故記事をかいたのか ActiveInteractionを勧められて使ってみて良さをひしひしと実感している今日此の頃,ふとQiitaでActiveInteractionの記事を検索してみると全く無かったのでこれは勧める他ねえと啓示を頂いたため. ActiveInteractionとは Github RubyGems commandパターンを利用してコードをめちゃくちゃスッキリさせられる.すごい 名前空間を使えるのでcontroller/function の形でファイルを管理できる.見やすい.すごい1 と,言うのをなんとなく自分で意訳しまくるとapp/controller/co
railsでSQLをActiveRecordクエリインターフェースのメソッドを使って 実現する方法の基礎っぽいところです。まだ勉強したてなので間違っている ところがあったら教えて下さい。 前提知識 railsのhas_manyとbelogs_toが何か知ってること SQLで簡単なSELECT、WHERE、JOINあたりは知ってること わかること railsでデータベースからデータ取得するときに使う、select、where、or、mergeの基本的な使い方 使用するテーブルとデータと関係 usersテーブルとcommentsテーブルは、1対多の関係 やりたいこと1(答えは確認事項7) 下記のデータを取得する 元旦にコメントした人の名前(usersテーブルのname列) その人の本文(commentsテーブルのbody列) ここで学びたいのは、2つのテーブルを結合して、 結合した側のテーブル
0. はじめに 0-0. はじめに 以前、「Rails における内部結合、外部結合まとめ」という記事を書いたのですが、GROUP BYに関しては触れなかったなと思い、実務で割と使用していて毎回少しずつ悩むので、自分の備忘録の意味も込めて記載します。 0-1. RubyとRailsとPostgreSQLのバージョン $ ruby -v ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16] $ rails -v Rails 5.1.2 => SELECT version(); version -------------------------------------------------------------------------------------------------------------- PostgreS
Rails Advent Calendar 11 日目です。 Railsの定番paginatorと言えばkaminariです。Railsで開発をしたことがあれば、少なくとも名前くらいは聞いたことがあるでしょう。 大変使いやすく、ほぼゼロコンフィグでページネーションできますが、ドキュメントがシンプルなこともあって、ちょっと凝ったことをしようとすると情報を探すのに苦労します。 と言うわけで「kaminariを使って三日目」くらいの人向けに書いてみます。 Why kaminari? まずは基本的なところをおさらいします。 ActiveRecordオブジェクトをkaminariでpaginateするには、以下のようなコードを書きます。(Gemfileは設定済みとします)
Rails のコードを読んでいると、module ClassMethods って多く書かれている事が分かると思いますが、こいつが何をやっているのかを話していきます。 module ClassMethods を説明する前に、まず、以下のような Module と Class を定義します。 module ModuleA def self.class_method_a 'class_method_a' end def instance_method_a 'instance_method_a' end end class ClassA include ModuleA end
経緯 ずっと苦手意識のあった部分テンプレートと向き合った結果、「なにこれ、便利!!」となったため、備忘録のために記事にします。 hamlで書いた記事があまりなかったり、localオプションの変数の意味や、collection、asの詳しい説明をなかなか見つけられなかったので、同じことで悩んでいる誰かのお役に立てたらすごく嬉しいです。 もくじ 部分テンプレートとは ファイル名 hamlへの記載方法 オプション partial locals collection as まとめ 部分テンプレートとは 部分テンプレート(=パーシャル)とは、繰り返し使用される要素をまとめてテンプレート化するもの。何度も同じコードを書くことを防ぐことができる。また、投稿一覧画面を作成する際、collectionオプションを使用すると、each分を使わずに繰り返しができ、読み込み速度もeach文を使用する時より速い(ら
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く