SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

技術-RubyonRails

shampers開発記

以前に作っておいたshampersというアプリを最近いじってます。 google analytics導入 独自ドメインにした このあたりは意外と需要ありそうな予感なので、記事にしたい。 非常に粗雑な作りですが、いまの自分だとともかくリリースしちゃえ、というスタイルが…

Action Controller の概要読んだ

4パラメータ コントローラのアクションでは、ユーザーから送信されたデータやその他のパラメータにアクセスして何か作業を行なうのが普通です。Railsに限らず、一般にWebアプリケーションでは2種類のパラメータを扱うことができます。1番目は、URLの一部とし…

フォームオブジェクト

フォームオブジェクトを書く理由、それはすなわち fatになるcontrollerをスリムにするためである。 controllerには,searchメソッドなどを書きがちで、どんどん肥大化する傾向にある def search @hoge = Hoge.where(id: XXX) if id.present? @hoge = @hoge.wh…

レイアウトとレンダリング railsガイド

2.2.1 Action Viewを出力する render "edit" or render :edit はedit.html.erbなどのテンプレートの呼び出しを行う layoutの指定 class ApplicationController < ActionController::Base layout "main" #... end などの方法で設定が可能。 個々のレイアウト…

Rails国際化 (I18n) API

tとl I18n.t I18n.l Time.now は、 translate # 訳文を参照する localize # DateオブジェクトやTimeオブジェクトを現地のフォーマットに変換する の意味 遅延読み込み I18のバックエンドは、訳文が初めて参照されるときに遅延読み込みを行います。これにより…

Active Record クエリインターフェイスを読む【Rails Guides】

さてさて、Active Record クエリインターフェイスを読んで行きます。 あ、これ知らなかったなーなんていうことをまとめておきます。 .first(3) とすると3つとれる。 なんだってー バッチ プログラムの一連の流れ あらかじめ決めておいた処理のまとまりのよ…

has_oneとbelongs_toの違い

自身が他のテーブルをたどるキーを所持している場合は、belongs_to 自身が他のテーブルからたどるキーで示されている場合は、has_one belongs_to class Book < ApplicationRecord belongs_to :author end と書くとすると Bookテーブルが、author_idをカラム…

Ruby on Railsガイドを読み進める - validation

Active Record まわり 2.1 acceptance チェックボックス専用のバリデーション 複数個だとどうなるだろ? 2.2 validates_associated アソシエーションを張っているものを一緒にバリデーションしてくれる便利くん validates_associatedは関連付けの両側のオブ…

【RubyonRails】newとbuildの違いについて【alias】

RubyonRailsにおける new と buildの違いについてまとめておきます。 結論から言うと、同じです。 環境 筆者が試した、またこの記事を書いた環境はこちらです。 $ rails -v Rails 5.1.3 newとbuild 基本的な使い方として、 以下のような例があると思います。…

controllerで生成したインスタンス変数をテストで参照したい場合

controllerの内にて以下のようにインスタンス変数を扱っているとき、 テストでインスタンス変数を呼び出したいときがある。 def create @shampoo = Shampoo.new(shampoo_params) if @shampoo.save ... end のように扱っていたインスタンス変数の@shampooをテ…

f.hidden_fieldとhidden_field_tagの使い方【Ruby on Rails】

Ruby on Railsでは、form_withやform_forタグの中でパラメータをユーザが直接フォームから入力させないまま、値を受け渡したい時に使用するものとして hidden_fieldとhidden_field_tag があります。 controller で保持している user_id を次のアクションに渡…

update_attributesとupdate_columnsの違い【Ruby on Rails】

Ruby on RailsのTutorialで使用されている、update_columns。 そして似たような処理に見える update_attributesがあります。 この二つの違いについて調べてみたことをまとめます。 検索するとqiitaの以下の記事がでてきますね。 どうもこちらの記事によると…

新しいプロジェクトを始めるにあたって

最初はこうするよっていうRuby on Railsでプロジェクトを作成する際の流れを書いておきます。 基本的な流れ Railsでnewだ! Rails newで新規プロジェクトを作成する。 名前は渾身の名前をつけてあげよう。 git関連 gitでソースコードを管理します。 - git in…

RubocopをRspecに適用させる方法

werkerを使用していて、RSpecファイルで落ちたのでその修正方法を。 # Gemfile gem 'rubocop-rspec' gemをインストールします。 # .rubocop.yml require: rubocop-rspec ymlファイルで読み込みます。 ファイルの頭でいいと思います。 Rails newした後Rubocop…

validatorクラスについて

Rails Tutorial終了後、validatorクラスを試してみた記録 ファイル名やコード内容はRails Tutorialで使ったものを参考にしてください。 validatorクラスを作ってみた。 基本的な考えは、railsの仕様にないvalidationを作る際に用いるものです。 カスタムバリ…

Sprockets::FileNotFound at / couldn't find file 'action_cable' with type 'application/javascript'の対処

Sprockets::FileNotFound at / couldn’t find file ‘action_cable’ with type ‘application/javascript’ 参考ページの解答 Just delete cable.js in /app/assets/javascripts/ and that should fix the problem. こちらがいっているのは、/app/assets/javasc…

NoMethodError: undefined method `use_transactional_fixtures=' forのエラー処理【Ruby on Rails】

Ruby on Railsで、RSpec導入にあたって、 NoMethodError: undefined method use_transactional_fixtures=' for や、 bundler: failed to load command: rspec もしくは bundler: failed to load command: rspec NameError: uninitialized constant FactoryGi…

【Ruby / RubyonRails】ロケットハッシュの書き方は古い?シンボルの書き方をしよう

RubyやRuby on Railsを勉強していると必ず出会うであろう、ロケットハッシュについて書こうと思います。 三( ε:) _(┐「ε:)_ 僕のハッシュロケットのイメージは上記の通りです。 ロケットハッシュって名前がかわいいですね。 ロケットハッシュとは こいつです…

検索フォームにvalidationを追加する方法【Ruby on Rails】

Ruby on Railsにて、検索フォームを使用した際に、受け渡す値にvalidationを加えたい時、ありますよね。 form_forやform_tagを使用した際のクエリ,パラメータにvalidationを加える方法を書きます。 Formオブジェクトというデザインパターンのひとつです。 Ra…

Ruby on Rails Tutorialを開始。

ついにrailsの勉強にしっかりと身を乗り出しました。 遅いって? 世の中には遅いなんてことはないんだぜ!!毎週2章ずつ進めて、5月末までに完了します。 それと並行して、webアプリケーションの作成します。これは目標です。 学びのメモ -m などの名前 フラ…

rails勉強会0408で勉強したこと

へっぽこエンジニアです。 railsについて結構いろいろ教えてもらったので忘れないようにメモ フレームを作る yieldはいろいろつけられる rake db rake db:rollback rake db:migrateclass CreateUsers < ActiveRecord::Migration[5.0] def change create_tabl…