→Ruby on Rails RubyによるWebアプリケーションフレームワーク RoR
Agile Web Development with Rails
10分で作るRailsアプリ for Windows http://masuidrive.jp/rails/
Ruby on Rails公式サイトの採用サイト紹介ページ http://wiki.rubyonrails.org/rails/pages/RealWorldUsage
実現したい内容 Active Storage storage.yml ローカルDiskサービスをdevelopment環境で利用する has_many_attached ファイルの削除 画像を変換 システムテスト中に保存したファイルを破棄 複数枚の画像を一括でアップロード Siteモデルにhas_many_attachedマクロを設定 validatorの設定 ビューの設定 アップロードした画像を個別に削除 ルートの作成 コントローラーの作成 Swiperの導入 NPMから導入 Swiperのフロント周り JS Autoplay 参考 実現したい内容 ブログのトップ画像を複数の画像が一定間隔で…
gem 'gretel' このgemを使って、パンくずリストを作っていこうと思います。 パンくずリストってなんぞや?? ホームページのすみっこで見られる、ページの階層ですね。Webサイト内で、どの位置にいるのかがわかる機能です。 「ユーザー」を押すとユーザーページへ、「ホーム」を押すと最初のページへ飛ぶことができます。(ハンバーガーメニューとかパンくずリストとか、プログラミングの世界は、遊び心があって良いですよね。) gem 'gretel'を使う こちらのGithubのREADMEをご覧ください↓↓ github.com gem 'gretel'をbundle installしたあと、 $ …
プロフィールを作るかのー モデルの作成じゃ! profileで名前と目的と画像と学習歴! rails g model profile rails db:migrate 間違えたら rails db:rollback あとはモデルでのアソシエーションを組む バリデーションも忘れずに! コントローラーでどこに 次にルーティング
ローカル開発中のRailsアプリに外部からのリクエストを届かせる必要があるとき、Ngrokは便利です。 たとえば 開発中のアプリなどを実機で動かしてて、ローカルのRails APIサーバーと通信したい 外部のサービスからのリクエストを受け取る必要がある といったときです。 通常、Railsでは、url_for のホスト部などはHTTPリクエストのヘッダー情報から取得して組み立ててくれるのですが、たとえば graphql-ruby のフィールドなど、コントローラー以外で Rails.application.routes.url_helpers.url_for(user) を使った場合など、 de…
業務でRailsアプリを作る場合、処理負荷的にも転送量的にも重い画像等は、CDNから配信するようにすることは、最早当たり前といって良いと思います。 最近は CDK によって簡単にCloudFront Distribution設定を維持管理でき、さらに ActiveStorage 等、Rails側の機能改善もあって以前に比べて、簡単に、レールから外れない範囲で書けるようになりました。 今回は以下のような構成で、CloudFront 経由での配信によるエッジキャッシュの利用を実現する方法について紹介します。 構成イメージ ActiveStorageで添付したファイルやオンザフライ変換( varia…
Rails 6.1 の新機能 rails_storage_proxy_url を使うと、ActiveStorage で添付したファイルへのリンクが署名付きURLへのリダイレクトにならず、RailsアプリのURLのままファイルをダウンロードできるようになります。 どういうこと? ActiveStorageはこれまで、S3をバックエンドとして使った場合、S3への署名付きURL=タイムスタンプなどが付与されたURLへのリダイレクトを行ってきました。 しかしこれは扱いづらいことも少なくなく、悩みの種の1つでした。 Rails 6.1 でこの問題に対する回答が(ようやく)公式に用意されたことになります。
こんにちは。 本記事は、プログラミング言語「Ruby」のフレームワーク「Rails」でよく利用するメソッド、「before_action」について解説致します。 【目次】 例題 解説 補足 まとめ 例題 before_actionメソッドを使った例として、次のコードをみてください。 ```Rails(Ruby) 1 class ApplicationController < ActionController::Base2 before_action :configure_permitted_parameters , if: :devise_controller?34 def configure…
副題:CircleCIでdocker-composeを使うのをやめた。 1年前くらいには、CircleCIでdocker-composeを動かす方法についての記事を書いてた。 patorash.hatenablog.com しかし、これが遅い。まぁ自分のやり方が悪いというのはあったのだけれど。ライブラリのキャッシュを1コンテナでやってから、次のジョブで複数コンテナに配布するようにしたほうが無駄がなくていいかなと思って、そうしていたのだけれど、docker-volume内にあるからキャッシュするためには一旦取り出さなければならないし、キャッシュを反映するにはdocker-volume内にインポー…
独習Ruby on Rails 現場で使える Ruby on Rails 5速習実践ガイド と続けて読んだので、そのままパーフェクトRuby on Rails増補改訂版を2章〜3章読んだ。 パーフェクト Ruby on Rails 【増補改訂版】作者:すがわら まさのり,前島 真一,橋立 友宏,五十嵐 邦明,後藤 優一発売日: 2020/07/25メディア: Kindle版 Rails本2冊読んだばかりなので、知ってる箇所を飛ばして、知らないところについてまとめた。 2章 ActiveRecord::Relation ActiveRecord::Relationは内部でどのようなSQLを発行す…
実現したい内容 ER図 Embedモデルにenumを設定する embed_typeのプルダウン選択 Embed用のURLに変換 Twitterの埋め込み表示 FontAwesomeのfaviconを指定 実現したい内容 ブログアプリに投稿する記事にメディア(YoutubeとTwitter)を埋め込めるようにする 埋め込めるメディアとしてYouTubeかTwitterをプルダウン選択出来る Twitterを選択し、適切なURLが入力されたとき、ツイートが表示されるようにする Youtubeを選択し、適切なURLが入力されたとき、動画が表示されるようにする 埋め込まれた記事ブロックのヘッダーアイコ…
実装したい内容 アクティブストレージ 画像の表示サイズの設定 Imageカラムの追加 バリデーションの追加 フロント周りの修正 controllerの修正 画像の位置の設定 image_alignカラムの追加 enumの設定 フロント周りの修正 controllerの修正 実装したい内容 画像サイズ(横幅)を指定できるようにし、指定サイズで表示させる 画像の横幅は100px〜700pxにする 横幅が100px以下または700px以上ならば、バリデーションエラーを発生させる 画像の表示位置を「左寄せ」「中央」「右寄せ」から選択出来るようにし、指定の位置で表示させる アクティブストレージ 画像ファ…
今日学んだこと 2021/01/16 学習項目 MVC応用 学習内容 View railsのコントローラーでの処理後、レスポンスでHTMLが表示されるのはAction Viewという仕組みを搭載しているから。 Action Viewとは、ざっくりいうとビューの機能がまとまっているもの これによってビューファイルが見れるようになっている。 注意としては、ビューファイルがそのまま表示されているわけではなく、ビューファイルの内容がAction Viewにまとめられてブラウザに返却されているということ。 また、コントローラーで取得したインスタンス変数はビューファイルでそのまま使えているように見えている…
インストール Gem Policies Controller ControllerとPolicyの挙動 authorizeはchainできる view側の設定 scope NoAuthorizedError rescue_fromメソッド インストール Gem gem "pundit" Policies Punditでは、app/policies配下に×××_policy.rbを作成し、管理する。 docに掲載されている例はこのようになっている。 class PostPolicy attr_reader :user, :post def initialize(user, post) @user…
はじめに はじめまして。株式会社スタメンでエンジニアをしております、永井(@0906koki)です。 以前の記事では、筋トレを週5でしていると書いていましたが、今は週2に減らして体をメンテナンスしています。 今回の記事ではRailsとWebpack、そしてReactを使って、webpack_dev_serverによるHot Module Replacement(以下 HMR)を実装する方法について書きたいと思います。 軽くwebpack_dev_serverとHMRの説明をすると、webpack_dev_serverとはWebpackを利用した開発環境向けWebサーバーで、Webpack管理内…
0. 現象 Ruby on rails のプロジェクトで、dbをマイグレーションかけようと思ったら、下記エラーに遭遇。 $ bundle exec rails db:migrate Could not find ffi-1.11.1 in any of the sources Run `bundle install` to install missing gems. 1. 解決方法 Xcodeのツールをインストールをする。 $ xcode-select --install すると、何やらXcodeのアイコンと利用規約的なポップアップが出るので同意してインストール。 完了してから、 $ gem …
2021/01/22分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 activerecord/CHANGELOG.md Allow to opt-out of strict_loading mode on a per-record base. Remove trailing commas in advanced route constraints example rails guideのRails Routing from the Outside Inの修正です。 Constraints in a block formの項にあるroutingのexampleコードから…
2021.1.21- チュートリアル12章(11章が基本) controllerの部分がmailer viewの部分がメールとなる。 ここ画像111 --メールを使ってパスワードの再設定-- 1 再設定フォームから自分宛のemailを入力 2 emailをキーにDBからユーザーを探す。見つかれば再設定用トークンと、対応するハッシュ値を作成 3 ハッシュ値をDBに保存し、再設定するためのトークン付きリンクをメールアドレスに送信する。 4 リンクがクリックされたら、メールアドレスを探し、DBに保存したハッシュ値と比較して認証する 5 認証に成功したら、パスワード再設定フォームを表示。 *再設定用フ…
レジェンド入り クラウド設計パターン データベース・リファクタリング モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド レガシーコードからの脱却 ゆとりの法則 アドレナリンジャンキー UNIXという考え方 | Ohmsha High Performance MySQL, 4th Edition ISUCON9をみんなで解く RailsのコードリーディングからのHanami プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発 ハンズオンNode.js ハンズオンJavaScript アートオブアジャイルデベロップメント マスタリングTC…
【今日の振り返り】 【時間】私の行動の前に時間は平伏すが、結局時間でしか計測出来ない ・7h:睡眠 ・1h:朝運動(縄跳び+軽く走る:1キロ+公園美化) ・2h:ブログ+思考日誌+Twitter+Facebook+0秒思考 ・0.5h:Railsアルゴリズム ・1.5h:Rails PF作成 ・7.5h:AWS試験対策(模擬試験:4.0h、語句解説理解:3.5h) ・0.5h:転職活動 ・4h:その他(家事) 【行動】今日はどんな遊びをしたのか? きっと物に当たるのは冷静さを取り戻したいのだなと、仮説を推し進める ①問題文が、すぐに理解出来るレベルに達していない。 ②条件を頭の中で構築していく…
はじめに あけましておめでとうございます。 s4naです。 今回は、最近勉強し始めたSolrについて書いていきます。 SunspotとはSolrという検索エンジンをRuby上で使うためのライブラリです。 github.com 中でもSunspot::Rails を使うとSolrをインストールせずともSolrの開発環境が構築できます。 はじめに 動作環境 作業内容 Javaのインストール RailsにGemを入れる Sunspot::RailsをRailsにインストール ModelにSeachableを追加する 例:Post Modelにbodyというカラムがあった時 Solrの起動を確認 Ra…
こんにちはエンジニアのhishikiです。エンジニアとして働き始めてはや半年が経ちました。 昨年の今頃はエンジニア転職のためにJava(Spring Boot)でアプリケーションを作っていました。 謎にJavaでアプリケーションを独学で作っていた私ですが、amazonで関連書籍を買っては「うーんわからん!」と唸りながらも勉強をしていました。 しかしながら「うーんわからん!」ながらも勉強を続けたり、そういった本や事象を理解しようと努力することは誰かに教わる以上の価値があると最近ひしひしと感じています。 ということで、今回は「技術書のすゝめ」としてこれまで読んできた本から4冊ほどピックアップして紹…
前回:ユーザー登録機能の実装 - Rails技術ブログ ①ruby-jwtをインストール。 gem 'jwt' $ bundle install ②ルーティングを設定。 Rails.application.routes.draw do root to: 'home#index' namespace :api, format: 'json' do resources :tasks resources :sessions resources :users end get '*path', to: 'home#index' end ③/api/sessionsにpostリクエストを送るとトークンを返…
はじめに こんにちは、ジモティーでAndroid開発をしている林と申します。 エンジニア未経験でジモティーに入社し、もうすぐ2年近くが経とうとしています。 ここでは未経験で入社した者がどのようにプログラミングの実務をこなして、他チームと案件に携わっていったかのプロセスをご紹介できたらと思います。 ※未経験の記事を書いていて大変恐縮ですが、ジモティーでは現在経験者の方優先で採用活動を行っております。 入社前のスキル まず前社では主にセールスフォースを使ったデータ管理や資料作成、エクセルのマクロ作成などで少々プログラミングを行った程度でした。 マクロ作成からプログラミングに興味を覚え、その時Pyt…
①sorceryをインストール。 gem 'sorcery' $ bundle exec rails g sorcery:install class SorceryCore < ActiveRecord::Migration[6.0] def change create_table :users do |t| t.string :name, null: false t.string :email, null: false t.string :crypted_password t.string :salt t.timestamps null: false end add_index :users…
プレゼンテーションレイヤ、いわゆるフロントエンドがクライアントサイドで実装・実行されるアーキテクチャ (注 1) において、管理画面/管理機能をあとから追加する際にどのような実装パターンがあるのかを整理してみます。 注 1: Presentation Domain Separation の実践の中でも、物理的にプレゼンテーションロジックとドメインロジックを分離しているアーキテクチャです。 用語の整理 プレゼンテーションレイヤ 三層アーキテクチャにおける、システムの利用者へユーザインターフェイスを提供する層です。本記事では"フロントエンド"とほぼ同義で使います。 OSI 参照モデルの第六層ではな…
オリジナルアプリ / ”セルフコンパッション”のための投稿ページ作成 〜昨日行ったこと〜 2時間40分 一昨日のアウトプット 20分 「undefined method `permit' for 」エラーに苦しむ 1時間40分 * 複数形が悪かった? 1時間30分 👉エラーを解決できず。 〜今日行ったこと〜 3時間 ”セルフコンパッション”のための投稿ページ 3時間 👉エラーは解消できたものの、user_idの原因は分からずモヤモヤ。 アウトプット 1時間10分 新しい発見 エラーから学んだこと。 (1)uninitialized constantエラー アクションで定義している変数は、アクシ…
2021/01/21分のコミットです。 CHANGELOGへの追加はありませんでした。 Use major + minor AR versions in 'Directly inheriting' error message activerecord/lib/active_record/migration.rbの修正です。 migrationファイルでバージョン指定の無いActiveRecord::Migrationを使用した場合に出力エラーメッセージで、指定するActive Recordのバージョンが4.2固定になっていたのを、使用している最新のバージョンを表示するよう修正しています。 Do…
結論 1. google-chrome をインストールします 詳細は割愛します*1 配置場所は /opt/google/chrome 配下になるかと思います 2. chromedriver をインストールします 詳細は割愛します 配置場所は /usr/bin/chromedriver になるかと思います*2 3. spec/rails_helper.rb に記述を追加します spec/rails_helper.rb に以下の記述を追加します。/usr/bin/chromedriver の部分は chromedriver がインストールされている場所です。 Selenium::WebDriver…