Rails

idと名前を関連付けるformのselectはcollection_selectメソッドを使おう

collection_selectメソッドの存在を見落としていてselectメソッドで名前を取得して、controllerでそれを対応するidに変換してModel#saveしてしまっていた。 そんなときはcollection_selectメソッドがめちゃ便利なので使い方メモっておく。 定義部分はactionv…

FactoryGirlで多対多の関連データを一緒に生成する

以下の記事を参考にさせていただきました。 FactoryGirl で多対多のアソシエーションをつくる http://blog.inouetakuya.info/entry/2013/12/28/205008 FactoryGirlsのアソシエーションのとこは以下から。 http://www.rubydoc.info/gems/factory_girl/file/GE…

Railsでのi18nでymlを使った日本語化手順

Rails Guideのi18nについての記事。ざっと目を通してみる。 http://guides.rubyonrails.org/i18n.html i18nという名前はiで始まってnで終わる間に18文字あるのが由来。なんかファンキー。 I18nのもっとも重要なAPI translate # Lookup text translations loc…

ActionMailerの非同期処理をActiveJob+Sidekiqで

この記事がめっちゃ分かりやすいです。ここに従って進めていきます。 http://qiita.com/QUANON/items/09c87787df6b0d287896 1. Redisをインストール Redisをインストールします。 $ brew install redis Redisについては、以下らへんが詳しいと思う。 Redisと…

ActionMailerのHTMLメールに画像を埋め込む

かっこいいメールを作りたくて、ActionMailerのViewで画像を埋め込めないかなーと思って調い。 以下を参考にしました。 メール - Rails ActionMailer 便利小ネタ集 - Qiitaqiita.com メール内にヘルパーを書き込んでも、パスがうまく反映されない。 Rails 4…

RailsアプリをNginx+UnicornなAWSにCapistranoでデプロイ

Special Thanks Rails 初心者が Capistrano3 で AWS EC2 にデプロイするためにがんばったこと。 - Qiita RailsアプリをEC2にデプロイしてみる。 - xxxcaqui.log 追記@2016/04/29 最近は環境やconfファイルのsetupはitamaeでやるようになりました。めっちゃ楽…

Amazon LinuxにrbenvなRubyでRails用の環境構築

Special Thanks Amazon LinuxにRuby on Rails環境構築(rbenv + ruby-build + Ruby 2.2.1 + Rails 4.2.1インストール) http://qiita.com/na0AaooQ/items/5bd62e630a2faf051a52 手順 目次 git Ruby パッケージ類 rbenv ruby-build Rails EC2のインスタンスはす…

RailsアプリからSlackへ通知する

何かのタイミングでRailsで作ったWebアプリからSlackへ通知を出したいので設定してみる。 以下の記事を参考にさせていただきました。 http://qiita.com/ysk_1031/items/f74c8b8274ec6c58520d 手順 slack-apiというgemを導入する gem "slack-api" config/inti…

Deviseでログイン状態を用いた振る舞いテストを書く

Everyday RailsのChapter 8「フィーチャスペック」を参考に作ってみます。 フィーチャスペック = 統合テスト モデルとコントローラの単体テスト、テストデータを作成するためのファクトリを全部まとめて、フィーチャテストを行う。 ちなみにコントローラテス…

RailsアプリをHerokuへデプロイするとき

手順簡易まとめ 結構内容とか分かってない部分を理解していきながらやりたいので、簡易の手順だけここにまとめておきます。 rails_12factorをGemfileに追加 DBのgemを追加 Rubyのversionを指定 production環境でprecompileできるか確認 デプロイ DBのmigrati…

Railsで例外処理403/404を実装してmodule切り分け【実践Rails学習ノート#5】

はじめに 追記@2016/06/22 Railsでの例外処理についてこの後一度真剣に考えてみたので、先に貼っておきます。 totutotu.hatenablog.com 本編 Rails学習ノート続きです。 今回は403 Forbiddenの例外処理を作っていきたいと思います。 おおまかに以下のような…

【実践Rails学習ノート#4】例外処理500を実装する

前回に引き続き実践Ruby on Railsの学習ノートです。 今回は例外処理を行って例外ページに飛ばす、という機能を実装していきます。 以下のような流れで作っていきます。 controllerでraiseして例外を発生させる 共通のcontrollerで例外処理を行う振る舞いと…

実践Rails学習ノート#3【Viewで基礎を作る】

前回に続きまして実践Ruby on Railsの学習ノートの続きです。 今回はViewのデザインをしながらビジュアルの部分をまず固めていくような内容です。 名前空間を分ける このアプリは 開発者 顧客 ユーザ の三者の利用を考えているので、名前空間を分けておきま…

ガントチャートの使えるプロジェクト管理ツールredmineをHerokuにデプロイする

ここを参考に、まずはherokuにインストールしてみます。 Redmineをherokuにデプロイする - rochefort's blog 夜の間は使わないだろうということで。 git clone git://github.com/redmine/redmine.git cd redmine git checkout 2.1-stable cp config/database…

実践Rails学習ノート#2【RSpecテスト】

前回に引き続き勉強したところをメモしながらやっていこうと思います。 Gemfileにrspecを追加して、 # Gemfile group :development, :test do gem 'rspec-rails', '~> 3.0' end rspecは以下でインストールできます。 $ bundle exec rails generate rspec:ins…

実践Ruby on Rails学習ノート#1初期設定編

これから1日1章くらいのペースで実践Ruby on Railsをやっていこうと思う.まじでこのくらいのペースでやってかないとと焦っています...笑 と言っても仕事優先なので仕事の合間に本気でやるしかないですが... ということで実践RoRは全部で20章という構成にな…

【Rails】デプロイしたときにassetsがうまく適用されない

Railsでherokuにデプロイしたのに、なぜかうまくstylesheetやjavascriptなどのassetsが適用されていない。ってなったら、きっとAssetsPipelineのところ。 以下などを参考。 Rails Asset Pipeline on Heroku Cedar | Heroku Dev Center 以下を追加。これでRai…

Rails::Engineとはなんなのか

最近やっとコードを読むという習慣をつけよう、という意識が自分の中で芽生えるようになってきて、それでRailsのgemとか読んでるときにRails::Engineというのが毎回出てくる。 そしてその意味すらわからんおれやばいな。。ってなったのでここでちゃんと調べ…

deviseでユーザログイン機能を実装

以下を参考にさせていただきました。 Railsのログイン認証gemのDeviseのインストール方法 - Rails Webook deviseの導入 Gemfileにデバイスを追加してgemをインストールします。 # Gemfile gem 'devise' $ bundle install 次にデバイスの設定ファイルたちをイ…

Rackアプリをモバイルの実行環境でテストするためにpowを導入する

Rackアプリをモバイルの実行環境でテストするためにpowを導入する話 powをインストールします $ curl get.pow.cx | sh powder(powをcommand lineから使いやすくするgem)をインストールします $ gem install powder 動かしたいRackアプリのディレクトリ直下で…

【Rails】ローカルホストでmysql.sockがないってエラー

ローカルでWebrickを立ち上げようとしたときに起こる以下のようなエラーの解決策。 Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2) エラーの意味としては、「mysqlに接続するためのソケットファイルが指定した…

【Rails】buildメソッドの使い方

以下を参考にさせていただきました。 http://www.atmarkit.co.jp/ait/articles/1406/30/news030.html 親モデル.子モデル.build(name: "Yuta Totz") これで親モデルに属する 子モデルのオブジェクトを新しく作成できる。 以下は例。 current_user.favorites.b…

【Rails】DBをリセットしてmigrationしなおす方法

インデックスを貼るのを忘れたりしてあとから加えたりしたときにどうしようかということで調べてたら。(migrationファイルは原則重ねていくようにしましょう...笑) http://memo.yomukaku.net/entries/iDhORCE $ rake db:resetはDBをドロップし、ただdb/schem…

【Rails】複数のhas_many :throughがあるときのデータの取り出し

has_many :throughの関係が複数あるときの取り出しについて。 今は UserとDriverがFavoriteで関連付け UserとDriverがHistoryで関連付け されている状態になっていて、このとき fav_drivers = current_user.drivers とかでFavoriteの関連付けなのかHistoryの…

Railsで多対多の関連を実装する

参考記事 以下を参考にさせていただきました。 開発現場でちゃんと使えるRails 4入門(6):ActiveRecordにおけるモデルの「関連」とコールバックの使い方 (2/3) - @IT Railsで多対多のモデルを簡単に扱えるhas_many :through - このブログは証明できない。…

Azure + Nginx + Capistrano でRailsアプリのデプロイ

以下のWindows Azure公式ドキュメントにやり方があったので、ここを参考に進めていく。 http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-ruby-deploy-capistrano-host-nginx-unicorn/azure.microsoft.com (heroku使いてぇ...) VM…

【Rails】rspecでAPIのテストを作成する

この記事は以下の記事の続きです 【Rails】簡単API作成 - 凸ろぐ こちらを参考にさせていただきました。 RailsでAPI作成とAPIのテストのまとめ - Rails Webook rspecでAPIのテストを作成する Gemfileに以下を追加。 group :development, :test do gem "rspec…

【Rails】簡単API作成

以下の記事のAPIのみの設定の部分を参考にさせていただきました。 RailsでAPI作成とAPIのテストのまとめ - Rails Webook ここでは、Uberみたいにドライバーを登録していくサービスのAPIを想定。Driverクラスってのを作ってます。 routes.rbに設定 config/rou…

Windows Azure + Rails でサーバーを構築してみる

Paas/IaaSってなに? Windows AzureはPaas/IaaSと呼ばれてるみたいです。 まずSaas(サーズ)とはSoftware as a Serviceの略で、 ソフトウェアを通信ネットワークなどを通じて提供し、利用者が必要なものを必要なときに呼び出して使うような利用形態のこと。…

【Rails】carrierwaveでupdateしたときにimageが空でも更新されてしまうのをなんとかする

なんか消える railsを使っていて、画像のアップロードにはcarrierwaveを使っているのだけど、updateのときに、画像の内容が空でもデータベース内の画像のパスを上書きしてしまうって感じになってる。 つまりパスは最新の日付に従って更新されるのにそれに応…

【Rails】複数テーブルで関連したデータを持つモデルをつくる

dotinstallに従ってやってみる。 今回はTaskというデータがProjectのデータに結びつくように設定してみる。 今まで自力で全部やってたじぶんにとってはめっちゃ違和感。慣れよう modelを生成 まずはmodelを生成する $ rails g model Task title done:boolean…

【Rails】renderを使って共通ビューを生成

アンダーバー付きのhtml.erbファイルを作成してそれを呼び出す。PHPのincludeとあんまやってることは変わんないかな 例えば、新しいデータを挿入する画面と編集画面を共通のビューで生成したい時には、こんな感じ <h1>Edit</h1> <%= render 'form' %> <h1>New</h1> <%= rende…

【Rails】createアクションが呼ばれるタイミングっていつなん...

以前の記事で、dotinstallを勉強してる途中にでてきた疑問点の考察。 ルーティングをみてみると、 ▶ rake routes Prefix Verb URI Pattern Controller#Action projects GET /projects(.:format) projects#index POST /projects(.:format) projects#create ne…

【Rails】newアクションとcreateアクションを実装してデータの新規登録機能を作る【dotinstallでRailsの基礎を勉強したノートその3】

リポジトリはここ。 https://github.com/totzYuta/dotinstall_ruby-on-rails エピソードごとにコミットするようにした。 今回は新規作成機能を実装する。 流れは以下のようになってる そのページへのリンクを作成 newアクションを定義 遷移先view(new)を作成…

【Rails】dbに格納したデータをとってくきてページに表示するの実装する【dotinstallでRailsの基礎を勉強したノートその2】

リポジトリはここ。 https://github.com/totzYuta/dotinstall_ruby-on-rails エピソードごとにコミットするようにした。 routing リクエストされたURLに対応してどのアクションを実行するのか設定をする config/routes.rbに以下を追加 root 'projects#index'…

Rails newした後に最初にやること【dotinstallでRailsの基礎を勉強したノートその1】

リポジトリはここ。 https://github.com/totzYuta/dotinstall_ruby-on-rails エピソードごとにコミットするようにした。 うまくrailに乗れるようになるために命名規則は強調した 目次 目次 Model Modelの作成 migrate 便利なコマンド Controller/View Contro…

【Rails】formのselectの簡単な使い方 - 表示と値の取得の仕方【CoffeeNote開発記】

ここら辺りがすごく参考になります。 select - リファレンス - - Railsドキュメント selectの使い方 今回はselectの自分が1番簡単だと思った使い方をメモしとく viewでのhtmlの出力はこんな感じで出来る。 <%= select_tag 'note[point]', options_for_selec…

Railsのブログエンジンpublifyを使ってみた - インストール,デプロイまでのみちのり

最近,新しいブログを始めようと思ってエンジンを何使うか迷っていたところで,publifyというものを知ったので使ってみることにした. github pagesで英語ブログを最近運用し始めたのだけど,jekyllは静的ページを作る感じのエンジンだし,今ちょうどRailsを…