rails

webpack-rails を試してみる

Rails5.1ではWebpackが導入される - rochefort's blog で書いたように、Rails5.1 ではWebpackが導入されそうです。 DHHさんが言うことはだいたい正しいので、 これまで面倒そうだと毛嫌いしていたWebpackを試して見ることにしました。 最初に感想 Webpackを…

Rails5.1ではWebpackが導入される

ちょうど手元のRails アプリでsprockets捨ててみようかどうか調べていたところですが いよいよ公式にjQuery外してyarnとWebpack導入するという議論がされているようです。 これはなかなか大きい変更です。 超いいまとめ。 Rails5.1に向けてフロントエンド周…

logrotate.d のdebugモードがおかしい

Railsのログローテートは、Linuxのlogrotateで行う派なのですが、 久しぶりに設定してdebugモードで確認してみるとエラーが出て小一時間ほど嵌ってしまいました。 結果から言うと、logrotate のBugだそうです。 Bug #1320201 “behaviour in debug mode doesn…

acts-as-taggable-onのtagをRansackの検索対象に含める

違うアプローチを試して少しはまってしまいましたが、 とても簡単に association も考慮して検索することができました。 Ransack 賢いなぁ。 例 以下は、title と description と tag の like検索になります。 query = { title_or_description_or_tags_name_…

RansackのURLを変更する方法

ransack で複数カラムを検索する - rochefort's blog の続きです。 ransack で title と description カラムを検索するようにしたのですが、 URLが微妙です。 こんな感じ。 ?utf8=✓&q%5Btitle_or_description_cont%5D=test やりたいこと utf8を消したい q[ti…

ransack で複数カラムを検索する

activerecord-hackery/ransack を使ってみました。 Gemfileに書いて、検索ロジックをちょろっと変更して、viewをちょろっと修正すれば 検索画面がすぐできちゃう優れものです。 詳細はactiverecord-hackery/ransack 複数のカラムで検索させる方法 例えば tit…

Rails の require_dependency とは何か?

Rails Guide を見てみますが、いまいちピンとこないのでソースを見てみました。 http://railsguides.jp/autoloading_and_reloading_constants.html#require-dependency 先にまとめ require_dependency とは、production環境では require し development環境…

RailsのSQLiteで正規表現を使う

Postgres や MySQL では、書き方は違えど正規表現を使うことができます。 しかし、RailsのDevelopment(SQLite)で実行すると、エラーとなります。 SQLite3::SQLException: no such function: REGEXP SQLiteでのREGEXP こちらを見てみると SQLite3におけるREGE…

Acts-as-taggable-on を拡張する

タグの管理にmbleigh/acts-as-taggable-on を使っています。 非常に使いやすくて重宝しているのですが、一部のタグのみ他のテーブルと関連づけしたかったので 拡張してみました。 やりたいこと schema.rb acts-as-taggable-on を使うと以下のようなテーブル…

Rails 5.1 の新機能

Rails 5 の新機能おさらいしとこうと思ってググって以下のスライドを見ていたところ 思っていたよりも変更があってショック受けていたら、Rails 5.1 の資料でした。 フライングしちゃった気分だわ。 まだリリースされていないので、ご参考程度に。 Rails 5.1…

Railsのエラー画面は動的か静的か

Railsのエラー画面を静的なものにするか動的名ものにするかという話は、よく上がるかと思います。 Assetsを利用したいし、他言語化したいし、エラーコードでメッセージだけ出しわけしたいし、 というので動的エラー画面を選択することがあるかと思います。 …

Rails Tutorials 2週目を終えて

第3版となりパワーアップしたのを知ったので 9月中頃からちょっとずつ実施してきた Rails Tutorials ですが 1ヶ月ちょっとで終えることができました(ちょっと掛かりすぎた)。 Rails Tutorial 第3版 Rails Tutorial 第3版 第4、5章 Rails Tutorial 第3版 第…

Rails Tutorial 第3版 第12章

今回は has_many :through の実例が学べます。 following, followers, followed など間違えやすいので整理してから進めると良いです。 Ruby on Rails チュートリアル:実例を使って Rails を学ぼう の2周目です。 第12章 ユーザーをフォローする | Rails チ…

RailsのsorceryでBrute force対策を行う

認証部分だけですが、ログインロック機能がお手軽に実装できます。 moduleとして組み込んで一部設定変更すればokでした。 Brute force protection · Sorcery/sorcery Wiki ざっくり 実施方法は、基本githubを見てもらえれば良いです。 rails g sorcery:insta…

acts-as-taggable-on と tag-it でタグの補完入力(Rails)

こんな感じのやつを作りました。 使うのは以下です。 タグのjQueryプラグインはいろいろありますが、tag-it を選択した理由は自動補完機能が付いているからです。 acts-as-taggable-on tag-it ざっくり acts-as-taggable-on は公式を参照すれば良いので省略…

Rails + Bootstrap 時のflashのkeyについて

第7章 ユーザー登録 | Rails チュートリアル でも述べられていますが Bootstrapには、以下の4つのalertsが用意されています。 success, info, warning, danger Bootstrap Alerts 通常、Railsでは notice、warningを使いますが Bootstrap 使うときは、上記4種…

Rails Tutorial 第3版 第11章

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう の2周目です。 第11章ユーザーのマイクロポスト | Rails チュートリアル 第11章ユーザーのマイクロポスト 本格的にWebアプリっぽくなってきました。 carrierwave, mini_magick, fog や、今回も各…

masonry-rails で Pinterest風Webアプリを作る

※ mansory-rails で使用されている mansory の version が低いため現在は未使用。Responsive で利用する場合は、個別にmansoryを導入する必要があります。 Pinterest風のサイズの異なるグリッドをおしゃれに複数並べて ブラウザリサイズ時に再配置してくれる…

Rails5ではautoload_pathsがproductionでは有効でない!

A Guide for Upgrading Ruby on Rails — Ruby on Rails Guides を見てみると、こんなことが書かれていて驚きました。 Autoloading is now disabled after booting in the production environment by default. 回避方法も一応用意されてはいます。 For the va…

Rails Tutorial 第3版 第10章

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう の2周目です。 第10章 アカウント有効化とパスワード再設定 | Rails チュートリアル 第10章 アカウント有効化とパスワード再設定 アカウント周りの実装が学べます。 個人的にはメール送信のテス…

Rails Tutorial 第3版 第9章

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう の2周目です。 第9章 ユーザーの更新・表示・削除 | Rails チュートリアル 第9章 ユーザーの更新・表示・削除 フレンドリーフォワーディングの実装(ログイン前にアクセスしたURLにログイン後に…

Rails Tutorial 第3版 第8章

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう の2周目です。 第8章 ログイン、ログアウト | Rails チュートリアル 第8章 ログイン、ログアウト sessionを利用したログイン機能の実装。 cookieを利用した永続化。 そのあと、ユーザーが選択で…

Rails Tutorial 第3版 第7章

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう の2周目です。 第7章 ユーザー登録 | Rails チュートリアル 第7章 ユーザー登録 メインはユーザ登録にまつわる、form関連のお話です。 ようやくwebアプリっぽくなってきました。 以下、その他気…

Rails Tutorial 第3版 第4、5章

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう の2周目です。 第4章 Rails風味のRuby 見た目整える回です。 cloud9 は emmet も使えて気持ちよくcodingもそれほど苦になりませんね。 シンボルにハイフンが使えない というのは、知リませんでし…

Rails Tutorial 第3版

気がついたら第3版が出ていたんですね。 Ruby on Rails チュートリアル:実例を使って Rails を学ぼう 上記ページ中頃に関連したスライドが埋め込まれてますが、 個人的には、Cloud9、MiniTest あたりが良いなと思いました。 特に初心者(特にwindowsユーザ…

Railsのrubocop.ymlを見てみる

Rails本体にrubocopが導入されているの知ってました? 私はrails commit log流し読み(2016/08/07) - なるようになるブログ を見て知りました。 railsの.rubocop.ymlはこちら 見てみたところ、ほぼ納得の設定です。個人的にもこれに寄せていきたいと思います…

libv8とrubyracerについて

今日のyak shaving。 とあるRailsプロジェクトを動かそうと bunlde install してみたところlivb8のinstall時にエラーとなりました。 OS はEl Capitanです。 エラー抜粋: 2 errors generated. make[1]: *** [/Users/rochefort/.rbenv/versions/2.3.0/lib/rub…

sorceryでpassword reset機能を実装する

こちらも公式wiki通りやれば、大体できます。 Reset password · NoamB/sorcery Wiki 1か所だけ修正 Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true が出るのでenvironmentsに以…

Railsの認証にsorceryを使う

認証といえば devise がよく使われていますが、富豪的なのでもう少しsimpleだという sorcery を使ってみました。 ちょろっと触った感じでは、お手軽で良いです。そのうちソースも読んでみます。 認証実装 Simple Password Authentication · NoamB/sorcery Wi…

ActiveAdminをちょろっと触ってみる

Web+DB Press(vol.85) Railsらくらくテストデータ準備を見ていて 触ろうと思うけど「後でやる」状態だったActive Admin の紹介がされていたので ちらっと触ってみた。 Web+DBのこの記事にちょいちょい誤字があるので注意が必要。 activeadmin/deviseのinstal…