ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

Rails

simple_formでラベルを非表示する方法

simple_formを使っている時に、ラベルを非表にする方法です。 github.com 下記サンプルは、Titleラベルを非表示にしたい場合です。 before after 書き方 書き方はとても簡単です。 = simple_form_for [@post] do |f| = f.input :title, :input_html => {:cla…

rails4で画像をS3にアップロードする [carrierwave + imagemagick + fog + S3 + Dropzone]

carrierwave + imagemagick + fog + S3 + Dropzone の組み合わせで、画像をアップロードして、S3に保存する方法です。 作業方法を下記していきます。 imagemagickのインストール Macだったら、brewでimagemagick をインストールします。 $ brew install imag…

Rails4のlink_toでconfirmを表示する方法

Ruby on Rails 4 で link_toで削除ボタンを作った時に、 「削除します。よろしいですか?」というような、confirmを表示させようと思って、 以下の用に書いたのですが、完全にconfirmが無視されて、削除処理が走ってしまいました。 = link_to item_path(@item…

Capistranoを使ってRailsのAssetsファイルの出力先を変更する

Ruby on RailsでAssetes ファイルをコンパイルするとデフォルトでは public/assets ディレクトリにコンパイルされたファイルが出力されます。 それを別のディレクトリに変更する場合の方法です。 そもそもなんで変更したいの? 私の遭遇したケースとしては、…

Rubyで数値の下N桁を取得する方法

例えば、123456789の下 3桁を取得したい場合 以下の様にすれば良いらしい。 > 123456789 % 1000 => 789 割ってあまりを出す感じです。 割る数字の0の数が結果の桁数になります。 10 => 1桁 : 9 100 => 2桁 : 89 1000 => 3桁 : 789 10000 => 4桁 : 6789 10000…

Rails4のhas_manyのorderの書き方について

Rails4のhas_manyで 1対多 や 多対多のレコードを取得するときに、Orderをかけながら取得しようと思って 以下のように書いたら has_many :items, order: 'id' 以下の様に怒られました。 Unknown key: :order. Valid keys are: :class_name, :anonymous_class…

RailsにBootstrap Datetimepickerを設定する

Datetimepickerって結局どれ使ったらいいのかよくわからず、 jquery UIのDatePickerとか試してみましたが、 見た目のデザインと簡単に設定できる感じから Bootstrap Datetimepickerが良いんじゃないかと思っています。 今回、あまり細かな設定はしていません…

Ruby on RailsのViewとControllerで共通で使えるメソッドの設定方法

Controllerで作ったメソッドをView側でも使い時ってありあすよね? そんな時は、helper_methodです。 書き方 実装方法は以下の様になります。 helper_methodに設定したいメソッド名を渡してあげれば、コントローラーでもビューでも使うことができます。 xxxx…

Railsの複数項目でユニークチェックのバリデーションする方法

Ruby on Railsの Activerecordのバリデーションで、 複数項目でユニークチェックする方法です。 今回のサンプルでは、仮にcodeとuser_idの 2項目でユニーク制約をかけています。 書き方 書き方は以下の通りです。 validates :code, presence: true, uniquene…

モデルのバリデーションの正規表現の書き方で怒られる

モデルのバリデーションで以下の様な正規表現を使って書いたら validates :published_status, presence: true, format: { with: /^[01]$/} 以下のようなメッセージで怒られました。 The provided regular expression is using multiline anchors (^ or $), w…

簡単にhtmlやerbのソースをslimに変換(コンバート)する方法

ここ最近、erbを使うのをやめてslimに移行してきているのですが、 既存のerbに手を入れる時に、まずslimになおしてそれから、改修コードを入れるみたいな作業が発生していました。 もっと早く調べればよかったんですが、すでにhtmlやerbからslimに変更するツ…

rake db:seedでDeviceのユーザーを追加する

初期ユーザーを登録時にrake db:seedを使って登録する方法です。 実装方法 UserモデルがDeviceで管理されている状態を想定しています。 default_user = 'admin@example.com' default_user_password = '1234567890' user = User.where(email: default_user) i…

Bootstrap モダルダイアログを簡単にクローズできないようにしながら表示する

Bootstrapのモーダルダイアログを使った時に、下記のダイアログが閉じてしまアクションを防ぎます。 (ダイアログが閉じないようにします。) ダイアログの外側をクリックしてダイアログを閉じるアクション [ESC]ボタンをクリックしてダイアログを閉じるアクシ…

Railsのアプリケーション固有の環境変数を持たせる方法

Railsでアプリケーションを起動してしまったら特に変更がなく、 Rails.envの環境にもそれぞれの変数を対応できるようにするための方法です。 共通項目に関しては、1回だけ設定です。 ベストな方法かはわかりませんが、以下の様に設定しました。 設定方法 con…

日本で使うRailsアプリケーションのタイムゾーンの設定

日本で使うRailsのアプリの場合、 タイムゾーン設定は以下の様に設定しました。 表示もDBもJSTを設定しています。 application.rb config.time_zone = 'Tokyo' config.active_record.default_timezone = :local config.time_zone 表示に使われるタイムゾーン…

Magic encodingが密かに便利

github.com magic encodingを一括でドカっと設定してくれるGemです。 いかを .rbの先頭に付けてくれます。 # -*- encoding : utf-8 -*- インストール Gemfileに以下を追加して、bundle installを実行します。 # https://github.com/mryan43/magic_encoding g…

Deviseで undefined method `authenticate_user!'で怒られた時

github.com 管理画面のユーザー管理と認証に、deviseを使っていた時に、 ログイン時のみアクセスできるように、Controllerに 下記のbefore_actionを設定していたんですが、 before_action :authenticate_user! 下記の様に、そんなメソッドは無いと言って怒ら…

Railsでどのサイズのfavicon用意したらいいかわからないそんな時

なんだか最近色々とありすぎて、どのサイズのファビコンを用意したらいいかわからないですよね? そんなときの一つの解法として、 この realfavicongeneratorというサイトを使ってRuby On Railsに設定する方法です。 realfavicongenerator.net この、realfav…

Railsで中間テーブルと関連テーブルのすっきりとしたインサート

RailsのActiverecordで中間テーブルと関連テーブルを一気にインサートする方法です。 モデルの関係は、以下の様に User <=> UserSchedule <=> Schedule UserとScheduleの間にUserScheduleが中間テーブルとして存在することを想定します。 Activerecodeの関連…

Railsのsubmitボタンでfontawesomeのアイコンを使う時の注意

Ruby on Railsでformのsubmitボタンにfontawesomeのアイコンを使おうとしたら少しハマったので、メモ。 fontawesomeは、web用のアイコンを提供してくれているライブラリになります。 fontawesome.io 以下のように書くと、アイコンを表示してくれます。 <i class="fa fa-plus-circle"></i> イン…

RailsのActiverecordの1対1の関連について

has_one か belongs_to どっちを使ったらいいの?? Ruby on RailsのActiverecordで1対1の関連のテーブルに簡単にアクセスするためには、 以下のいずれかを使うことになります。 has_one belongs_to よくどっちをつかったらいいんだっけ?という気分になるん…

Rails4からGamil経由でメールを送信する方法

Rail4でActionMailerにGamilを設定して、Rails経由でGmailからメールを送信する方法を説明します。 この方法を使うと無料で、サービスからメールを送信することができます。 今回は、Gmailのアカウントの取得方法は割愛します。 ActionMailerの設定 開発環境…