→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
実現したい内容 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') # 既にバケットがある場合…
去る2020/12/18(金)、銀座Rails#28を開催しました。 ginza-rails.connpass.com 当日の様子は、togetterのまとめを御覧ください。 togetter.com スポンサーセッション リンクアンドモチベーションさま 第一回からスポンサーをして下さっているリンクアンドモチベーションさまからは、以前公募枠からもご登壇頂いた、テックリード&EMの江上さんがご登壇。 良い会社の定義を変える、事業面だけでなく会社と社員の相思相愛度(エンゲージメント)が評価される社会を...という思いでプロダクトを作っているとのことで、展開している4つのサービスを紹介。 モチベーシ…
Railsを勉強している人なら誰しもがわかる技術書「現場で使えるRuby on Rails速習実践ガイド(以下、現場Rails)」にて勉強していたらRailsチュートリアルでも見たことのないメソッドが出てきて、 「現場で使われるということはこういうことか...」とか勝手に思った。 どのようなメソッドだったのか。 simple_formatメソッドである。(そんなん知ってるわ、って思っていたらすみません) 現場RailsのChapter3-3で出てくる。現場Railsによると、 simple_formatはデフォルトエリアをタグで囲い、テキストに含まれる一部の危険なHTMLタグを取り除いてくれま…
railsを学び始めて、約1ヶ月になりました。どんどん新しいメソッド、新しい専門用語が増えて パニックになりそうですが、 一つ一つの言葉に対してしっかり理解していくと スムーズに学習が進むのではないかと思い、 さまざまな専門用語を 自分の言葉で簡単に一言でまとめたいと思います。 初回はparamsについて。 paramsとは... お客さんが入力した(文字などの)値がパラメータ、 そのパラメータを入れる箱がparams twitterで言えば、 ツイート→パラメータ そのツイートを保存しておくために、paramsという箱を使う
今日行ったこと 7時間15分 オリジナルアプリ *ホーム画面(ヘッダーフッターの実装)👉2時間15分(完) *新規登録・ログイン画面のビュー👉2時間40分(完) *ユーザー新規登録のテストコード👉2時間20分(8割くらい) 新しい発見 実装していた時に、参考にしたサイト 記事に影を出す際、勉強になった!! qiita.com 記事を投稿する時にこれ使いたいと思った。見易くて便利! uxmilk.jp Userモデルのテストコードについて ダミーを作れるFakerについて、文字数に関する制限ができるのとできないのがあると知った💡 nicknameについて「15文字以下」にしたかったので、nick…
2021/01/16分のコミットです。 CHANGELOGへの追加はありませんでした。 Merge pull request #41122 from pdcribeiro/fix-getting-started-guide rails guideのGetting Started with Railsの修正です。 Using Concernsの項にあるexampleコードでパラメータ名をタイポしている箇所があったのを修正しています。 Just use regexp literal for assert_match activerecord/test/cases/bind_parameter_te…
概要 以前はポートフォリオとして作成し、今は新しいライブラリを試したりする時に使うおもちゃになったRailsプロジェクトでOmniAuthのバージョンを2.0.0まで上げたら、You are using an old OmniAuth version, please ensure you have 1.0.0.pr2 version or later installed. というエラーが出て、はぁ??ってなった時のメモです。 環境 Rails 5.2.4.4 ruby 2.6.6 devise 4.7.3 原因 以下のissueでみられるように、OmniAuth::VERSIONのチェックをす…
i18nとは? Railsアプリケーション内で複数の言語を併用する仕組み。国際化 (Internationalization)のこと。英単語の先頭の”I”と末尾の”n”の間の文字数が18個あるから、i18nという表記らしい。 できるようになることは? Railsではデフォルトだと英語表記のため、インストールし設定することで、英語以外の言語に翻訳する機能が得られる。また多くの言語を扱いたい時にも、簡単な方式で導入できるフレームワークを提供してくれる。 日本語のja.ymlだと汎用的なエラーメッセージや時間、単位はすでに設定してあるため使いやすく、またカスタマイズもしやすい。 手順(日本語化) g…
【今日の振り返り】 【時間】 ・7h:睡眠 ・2h:ブログ+思考日誌+Twitter+Facebook+0秒思考 ・3h:Railsアルゴリズム ・1h:AWS試験対策(模擬試験:0.5h、語句解説理解:0.5h) ・5h:転職活動(転職フェア) ・6h:その他(家事・移動含) 【行動】 転職フェアなるものに参加して、企業の話を聞く(3社:2h 公演:1h) ん?数字が合っていない。おそらく2時間何もしていない”うろつく”をしていたのだ。 そういった時間を改善しないといけないよなと。 軽く講演会の内容を自分なりに記述しておく _____以下講演会メモ______ 何かをする際の障壁となるものは…
皆さんこんにちは、alcobroです。 本日は 営業職からWeb系自社開発企業のエンジニアとして採用されるまでの道のり をお話します。 ~~~【ざっくり】プログラミング学習開始から就職の流れ~~~ ・2019年12月末 〜: ProgateでHTML, CSS, Ruby の学習開始 ・〜2020年3月: Progate, ドットインストール, Youtubeで学習継続 ※Progateは各1週ずつ ・2020年3月中旬: 侍エンジニア塾の6ヶ月コースへ入塾 ・2020年3月中旬〜: Ruby on RailsをProgate, Railsチュートリアルで学習開始 ・〜2020年6月: Pro…
Rails 6.1.0で導入されたstrict_loadingを使うと手軽にN+1のチェックが出来て便利そうなのでMEMO📝 基本的には以下のような形でActiveRecord::Releationを作るメソッドチェイン内でstrict_loadingを呼び出すようにすると、 def index @feeds = Feed.strict_loading .search(params.dig(:query, :keyword)).recent .pager(page: params[:page], per: PER_PAGE) response = @feeds.map { |feed| ::A…
ご無沙汰しております。sasaboです。 前回の更新から時間が経ってしまいましたが皆様お元気だったでしょうか? あれからクリスマスがあり正月を迎え非常事態宣言が出たりと色々ありましたね。 今日はWebエンジニアになって良かったことを書きます。 残業時間が大幅に減った 現職は残業をほぼやっていません。 ほぼ毎日、定時上がりです。 これは体力的にも精神的にもかなり楽になったと思います。 早く帰れるので家族も安心してくれているのではないかと思います。 気になる収入ですが前職に比べると残業がないのでマイナスではありますが時間単価にしたら 上がっている気はします。(計算していません。感覚的な話です。) …
なぜオブジェクト指向が必要か?などRubyから入った人全員にオススメだと思う書籍 スッキリわかるJava入門 第3版 スッキリわかるシリーズ作者:中山 清喬,国本 大悟,株式会社フレアリンク発売日: 2019/11/15メディア: Kindle版 Javaで書かれていますがここ数年で1番素晴らしい本だと思いました。 Rubyの入門本は分かってる前提で書かれていることが よくわかりました。何度も復習したいと思います。 Javaもやってみたいですね。 MVCモデル URLとHTTPメソッドを受け取って Controller に渡すのが、Router リソース(データ)として振る舞うのが、Model…
前回:vuexとaxiosでタスク一覧を取得 - Rails技術ブログ ①storeにタスク追加処理を記載。 store/index.js import Vue from 'vue' import Vuex from 'vuex' import axios from '../plugins/axios' Vue.use(Vuex) export default new Vuex.Store({ state: { tasks: [] }, getters: { tasks(state) { return state.tasks } }, mutations: { setTasks(state, …
前回:タスク追加モーダルの実装 - Rails技術ブログ ①vuexをインストールしてインポート。 $ yarn add vuex packs/hello_vue.js import Vue from 'vue' import App from '../app.vue' import router from '../router' import axios from '../plugins/axios' import store from '../store' //←←← import 'bootstrap/dist/css/bootstrap.css' Vue.config.producti…
こんにちは。 とある日仕事をしていて、、、 「なんで会員登録のメールはすぐに受信するのに、こっちの処理で飛ばしてるはずのメールはすぐに受信できないんだろう?」と不思議がっていました。 で、先輩に質問すると、、 「メールとか、重い処理は本流からはずれて処理をするんだよ。bundle exec rake job:workをローカルで実行すれば、メールを確認できるはずだよ」 と言われて、そのとおり実行すると、無事にメールを受信できて、開発が前進しました。 ということで本記事は、ジョブ管理のお話。 ActionJob というものがある 時間のかかる処理をリアルタイムで行うと、その間、ユーザーは待たされ…
Androidエンジニアの高橋です。 突然ですが、皆さんデータベースのビューって使ったことありますか? CREATE VIEW で作るアレです。 自分は過去にビューを使うプロジェクトでお仕事した経験はありますが、そんなに理解も深くなく、なんとなく「プログラム書きたくないSQLおじさんが使うもの」くらいに思ってました。(すごい偏見) そんなビューへの偏見を払拭するような活用例を最近見つけたのでご紹介したいと思います。 ビュー自体については説明を割愛させて頂きますmm 課題 以下のようなproducts というテーブルがあったとします。 products id | name | type | pr…