→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
こんにちは。 本記事は、プログラミング言語「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 …
タイトルで全てを語ってしまいましたが、これです。 WSL2でRailsアプリの動作確認をしようとbin/rails sを実行後、 http://localhost:3000 にアクセスしたのですが、何故か表示されず…。pumaも起動していますが、ポートフォワーディングに失敗しているようです。.wslconfigには、LocalhostForwarding=Trueを設定してあるのに…。 ググったところ、close済みのissueにたどり着きました。 github.com このコメントの途中に、「高速スタートアップをオフにしろ」と書いてありました。やり方は以下のサイトにありますが、英語です。 h…
今日学んだこと 2021/01/14 学習項目 オブジェクト指向 正規表現 railsの基本概念 学習内容 オブジェクト指向 アプリケーションを作成するときに、登場する役割ごとに分けて実装する方針のこと設計思想の一つ メリット 実装がしやすくなる 後からコードを改変するときも他のオブジェクトに影響しない 単一責任の原則 アプリケーションの設計を考える上で、必要となる決まりの1つ。 「1つのクラスは1つの振る舞いしか持たない」という原則の下設計をする。 正規表現 文字列の一部分を抽出・置換したり、文字列が制約を満たしているかを調べるための表現方法 例えば、 090-1234-5678 09012…
今日学んだこと 2021/01/13 学習項目 レスポンシブデザイン ruby応用 学習内容 レスポンシブデザイン レスポンシブデザインとはざっくりいうとPC、タブレット、スマホで表示するデザインを変えること。 画面の大きさが違うから、それに合わせないと見づらいから変えようって話ですね。特にPCは横長に対して、スマホって縦長だし。 方法は簡単で、CSSに @media(max-length: 表示を変えたい長さ) { その大きさを指定する .img { width: 50%; } } こんな感じに記述します。この@media.....のことをメディアクエリといい、表示を変えたい長さをブレークポ…
プログラミングを現在、学習しており学習の記録として更新しています。 目的: 今回は、rails generateコマンドを使用した時に、assetsファイル、heplerファイル、testファイル、ルーティングを生成されないようにしたい。 目次: 1. rails generate (g) コマンドとは? 2.rails で使うジェネレーターの設定ファイルの変更の仕方!! 3.最後に 1. rails g コマンドとは? rails newコマンドで作ったRailsアプリケーションの土台に、rails generateコマンドによって中身を加えていくためのもの。 ※目次にあるように、rails…
Rsilsチュートリアルや現場Railsでも解説されているログイン機能の実装は理解が追いつかなく、なにがなんだかわからない状態だったので、現場Railsを参考にログイン機能の実装をアウトプットしていきたいと思う。 まずWEBアプリケーションでログイン機能を実装する理由は、例えばTODOアプリを作ったとして、やることリストを投稿したとする。自分一人なら、なんら問題は無いが、第三者に記事を投稿されたり削除されてはいけない。 そういった問題を解決するためにログイン機能があり、ログインしたユーザーのみが自分自身のタスクしか扱えないようにするのが目的である。(少々雑かったらすまそん...) ログイン機能…
自分のための備忘録です。 seed-fuを使ってデータ投入していたのだが、データを作り直そうと思ってseed-fuを再び実行したところ、minioのバケットを作るところでコケた。原因は、既にバケットがあったからだった。 require 'aws-sdk-s3' storage_yml = YAML.safe_load(ERB.new(File.read(Rails.root.join('config', 'storage.yml'))).result).fetch('minio') bucket_name = storage_yml.delete('bucket') # 既にバケットがある場合…
2021/01/18分のコミットです。 CHANGELOGへの追加はありませんでした。 Make ActiveModel's attribute behavior follow ActiveRecord's activemodel/lib/active_model/attributes.rbの修正です。 Active Modelのattributeメソッドの挙動を、Active Recordのattributeのメソッドと一致するよう修正しています。 Fix joins that reserved word association is referenced in where activere…
Go言語で正規表現のコードを書く際に、どういう表現ができるんだっけ?と思う時ありますよね。 Ruby(Ruby on Rails)の正規表現のコードを書く際はRubularというツールを使う方は多いと思いますが、Golangでも同じようなRegoという正規表現チェックツールがあって、よくそれを使っています。 regoio.herokuapp.com 使ってみる 分かりやすい対話的なインターフェースが便利です。 Regoを使うメリット 画面上のGo RegExp Quick Referenceに記載されている記法は Rubular とまったく同じなので一見Regoを使う必要はなさそうにみえます。…
ディレクトリに移動 % cd ~/ファイル名 Railsアプリケーションで用いる仕組みの一部を設定するコマンドを実行 % bundle config --global build.mysql2 --with-opt-dir="$(brew --prefix openssl)" Railsのバージョン6.0.0を用いて、アプリケーション名を作成 % rails _6.0.0_ new アプリケーション名 -d mysql アプリケーション名ディレクトリに移動 % cd アプリケーション名 現在のディレクトリのパスを表示 % pwd この後 新しくデータベースを作成。 rails db:creat…
【今日の振り返り】 【時間】私の行動の前に時間は平伏すが、結局時間でしか計測出来ない ・7h:睡眠 ・1h:朝運動(縄跳び+ダッシュ+公園美化) ・2h:ブログ+思考日誌+Twitter+Facebook+0秒思考 ・2h:Railsアルゴリズム ・5h:AWS試験対策(模擬試験:1h、語句解説理解:4h) ・1h:AWS模試 ・3h:転職活動 ・4h:その他(家事・移動含) 【行動】今日はどんな遊びをしたのか? AWS試験対策で模試を受けるも正答率65%で、今週の受験は見送りの判断。 来週の月曜日または火曜日に受験することに切り替える。 こう判断すると、自分のなかの1人が文句を言い始めるが、…
Decoratorとは?? modelの情報を加工してviewで表示したいときに、現在の記述を変えずに、追加で定義したいときに使うデザインパターンの一つ。modelとviewの中間に位置する。modelに表記することも可能だが、以下の2点で合理的ではないと言える。 modelにviewに関するメソッドを定義するのは違和感 追加の機能を増やしたいときに、肥大化してしまう Draperとは? Decoratorを作成できるようになるgem。githubには「Railsのモデルを表示」とある。 Draperのメソッド object挙動はselfと同じ。 delegate_alldecoratorをg…
今すぐ登録したい方へ このブログから登録の多いエージェントは下記の3つです★ (リンクをクリックすると公式サイトに飛びます) ✅【ダントツの1位】フォスターフリーランス【案件保有数5000件以上。業界20年の超老舗】 ✅【僅差で2位】エミリーエンジニア【4人に1人が初めてのフリーランス】 ✅【惜しくも3位】Midworks(ミッドワークス) 【リモート案件が超豊富。正社員並みの保障アリ】 こんにちは、mah(@RailsRubyMah6h)です。 このブログでは、 僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、 ノウハウなどを書いていきます。 今回は、 【2021年】#リモ…
前回に続き転載。 そもそもパンくずリストとは パンくずリストとは下記の写真のようにページを階層順に配列し、ユーザーが操作時に現在どの位置にいるかを可視化したリストです。このようなリストを位置型パンくずリストと呼びます。 他にも属性型パンくずリストといいページを階層的に示したものでなく、そのページがどの種類のカテゴリに属しているかを示すリストもあります。属性型パンくずリストの例としてはECサイトが挙げられます。 パンくずリストを導入することによって主に下記の3点のメリットがあります。 ・操作性の向上 →ユーザーがサイト内での位置情報を常に確認できる。 滞在時間の向上 →パンくずリストにより階層毎…
以前別のプラットフォームでまとめた記事の転載です。 本記事ではまず「公開」「下書き」の2種類の記事のステータスがあるブログアプリに「公開待ち」という新しいステータスを追加します。そして「公開待ち」のステータスで保存された記事の公開予定日時が現在の日時より過去になった場合に自動でバッチを回し「公開」ステータスへ更新する処理について記載します。 上記の更新を可能にするRakeタスクを作成し、合わせてwheneverを用いてその処理を走らせる方法について書いていきます。 そもそもRakeタスクとは? RakeはRubyで処理内容を記載することができるシンプルなビルドツールです。 このRubyで書かれ…
つい先週 Rails 6.0系だったアプリケーションを 6.1にアップグレードした。 6.0系で rails new しているもので、テストカバレッジもそこそこあるので、アップグレード自体は半日もかからず終わったが、ActiveModel::Errorsの仕様の変更によって修正が必要な部分があり、その原因が分かりづらかったのでメモ。 ActiveModel::Errors の変更内容 Rails ガイドの記述: https://railsguides.jp/6_1_release_notes.html#active-model-主な変更 PR: https://github.com/rails…
弊社では、データの分析をメンバーがしやすくするにあたって、Re:dashを導入しています。 データへのアクセスのしやすさ、SQLの実行のしやすさはRe:dashで良いとして、 実際にどんなデータがどんなテーブルにはいっているのかを知らなければ分析方法をまちがってしまったり、 分析をするためにコミュニケーションが煩雑になりスケールしづらく、分析のハードルがあがってしまいます。 一方で、データベースのスキーマはプロダクトを日々開発をしていく中で追加になったり変更になったりする事がおおく、 変更にドキュメントを追従させていくコストをなるべく減らしていく事も必要です。 また、結果を社内のメンバーしかア…
はじめに 2021年からはGKPTではなく、YWTでふりかえってみることにしました。また、手帳に合わせて月曜日~日曜日のサイクルで1週間を管理することにしました。 2021年2週目をふりかえった結果を、じぶんリリースノートとして記録します。 振り返り期間 2021年2週/52週 1/11(月)~1/17(土) じぶんリリースノートとは じぶんリリースノートとは、はてなの a-knowさん が毎月実施されている月報です。 blog.a-know.me 自分自身を製品やサービスに例えて、毎月リリースノートを書くという手法?です。私もプロダクト開発に携わっているため、2019年から取り組んでいます。…
今回ポートフォリオをHerokuにデプロイしたんですがアップしていた画像が表示されなくなったので調べてみるとS3が必要とのこと。(この時点で今まで気になってたS3が何なのかやっとわかった) 導入(AWSの準備、S3バケットの作成は省きます。) まずgemを入れてbundle。 gem 'carrierwave' gem 'fog-aws' fogの公式情報はこちら。 github.com carrierwaveの導入に関してはすでに記事を書いてるので割愛。 carrierwaveの設定 下記を追加。今回はdevelopmentとtest環境はlocalファイルそれ以外のproductionやs…
Rails 使ってるのに Node.js とか Python とか云われても わからん... 環境 概要・状況 原因 解決 ログ全文 ログの見方 Links 環境 MacOS Big Sur Ver.11.1 anyenv + pyenv 概要・状況 Rais プロジェクトで yarn install したら node-sass をインストールするために node-gyp をインストールしようとして python2 が見つからなくて そこでコケた 原因 anyenv, pyenv を利用して Python のバージョン切り替え... 3系を利用していた 解決 Rails プロジェクト ディレク…