読者です 読者をやめる 読者になる 読者になる

Lチカ開発ブログ

https://l-chika.com/の開発ブログ

ruby

Rails5.1+webpack+React

Rails5.1で、Reactの利用を開発モードで試してみる。 前提・環境 手順 Rails5.1のインストール Gemfile アプリケーションの作成 サーバー起動確認 Reactサンプルページの作成 controller生成 webpackでbuild hello_react を実装 HMRのパスを変更する webpack…

Rails Consoleで確認するとConfig(Settings)の更新がされない時

定数を環境毎に管理できるgem config で、config/settings.yml の中身を変更して、Rails Consoleで確認しても反映されない場合がある。 github.com その場合は、単純にspringが起動していたためだった。 $ ./bin/spring status Spring is running: 4475 spri…

RubyでAWS SNS からiOSにプッシュ通知

サーバーからiOS端末にPUSH通知を送る 前提 IAMでSNS権限があるユーザを作成されている デバイスのトークンを取得している SNSでApplicationのArnが作成されている require 'aws-sdk' require 'json' aws_access_key = 'IAMのaccessKeyを設定' aws_secret_ke…

nattoとclassifier-rebornを利用してRubyで文書分類

Pythonの統計・数学ライブラリを利用した文書分類はあるが、Rubyで実現できる方法を模索。 目的 文書(データ) の内容から、いくつかのグループ毎に自動的に分類する 手順 訓練データを予め作成しておく 訓練データを形態素解析して、訓練する 実際のデータを…

RubyでMarkdownのImgタグのサイズ指定

Markdownエディタを作成したので、次は表示をつくる。 l-chika.hatenablog.com 前提 実現したい事 参考 実装 Decorator view 参考 こんなアプローチもあった 前提 以下のGemを利用 Redcarpet Draper 実現したい事 ![image](http://url.to/image.png = 250x25…

RailsでsimplemdeをつかってMarkdownエディタをつくる

RailsでMarkdownのエディタを実装するために、simplemdeを利用する。 github.com 前提 インストール 実装 app/assets/javascripts/application.js app/assets/stylesheets/application.scss form スクリーンショット 前提 l-chika.hatenablog.com インストー…

include_all_helpersについて

include_all_helpersについてのメモ。 以下にあるとおりController名と同名のhelperしか読み込まないように設定をすると、ちょっと厄介なことがある。 qiita.com HelperをもつGemを利用する場合。例えば、font-awesome-rails 。 github.com 課題 config/appl…

ActiveModelのベストプラクティスを考える

ActiveModelとは ActiveModelとは こちら にあるように Modelと直接紐付けないような、フロントのフォームに密接に関わるバリデーションを実装する場合に便利な Module。 課題 ActiveModel を利用シーンの一つとして、一つフォームで複数のモデルを扱うこと…

Mechanizeでリンクをスクレイピング

Mechanize を利用したときのメモ。 Mechanize を試した理由 よく利用する関数と戻り値の型をメモ 利用例 Mechanizeをラッパーしたリンク取集クラス 呼び出し例 おすすめ本 Mechanize を試した理由 ちょっと前は anemone を利用していたが、最近はメンテして…

ransackのinをカンマ区切りでする

やりたいこと ransack を利用して、 in の検索をカンマ区切りで指定できるようにする。 手順 Controller class HogeController < ApplicationController ... def index @q = Hoge.ransack(ransack_queries) @hoges = @q.result.page(params[:page]) end ... …

gretel+bootstra4でパンくず

Railsで gretel をパンくずを作る。 やりたいこと 課題 解決方法 手順 Gemfile インストール パンくずを設定 view メモ 完成 やりたいこと bootstrap4 の breadcrumb でパンくずをつくる。 課題 <% breadcrumb :issue, @issue %> ヘルパーのオプションでは l…

enumerizeで検索select box

ransack で検索フォームを作成する場合のenumerize を利用したselect boxの作成について。 github.com github.com 課題 解決方法 locale モデル ヘルパー view 最後に 課題 enumerize で検索用のselect boxを作成したいが options メソッドだと、 > Product.…

rails generateコマンドで忘れがちな事「rails g -h」

rails generate コマンドで、よく使うけど忘れてしまいがちな以下をメモ。 generateが可能な事・オプション。Rails標準でgenerateできるものは大体理解しているが、追加した gem のgenerate方法 生成されるものを制限するskipオプションについて モデルを作…

Railsのモダンなフロントエンド環境とか良く分からないので、ひとまずRails5+npm+sprockets+bootstrap4

Railsのフロントエンドといえば、ES6をES5へ変換してくれるBabelの利用や、WebPackを利用したフロントエンド環境の構築等がよく記事になっているが、そこらへんの流れについていくのが辛い。 今後はRailsでもnpm・yarnとかを標準で利用していく流れもあると…

RailsでExpected string default value for '....'

Rails5で開発していたら、generateで Expected string default value for というメッセージが表示された。 $ ./bin/rails g controller pages main --no-helper --no-assets Expected string default value for '--test-framework'; got false (boolean) Exp…

Railsアプリケーション構築時に初期にしたこと

Railsでアプリケーション作成後に、ついつい忘れがちになるのでメモ。 前提 手順 変更前 TimeZone locale 確認 ちなみに 関連する書籍 前提 環境、Railsアプリケーションの作成はこちら。 l-chika.hatenablog.com 手順 やったこと Timezone: アプリケーショ…

Railsアプリケーション構築のはじめ

Railsでアプリケーションを構築する最初の手順。 前提 環境 手順 Rails初期化 アプリケーション作成 Gemfileの therubyracer をコメントインして、bundle install DB設定 MySQL確認 起動確認 ソース管理する場合は gitignore 関連書籍 参考ページ 前提 開発…

ActiveRecordでMySQLの正規表現(REGEXP)

ActiveRecordを利用して、MySQLのREGEXPを利用したい場合 class Book < ActiveRecord::Base scope :with_title_regexp, -> (pattern) { with_regexp(columns_hash['title'].name, pattern) } scope :with_regexp, -> (column, pattern) { where("`#{table_na…

ActiveRecordのincludesでネストされた関連をロードする方法

ActiveRecordのincludesメソッドで関連テーブル(belongs_to, has_one, has_many)をキャッシュできる。 そこからさらに、関連テーブルの関連をキャッシュする方法 環境 Ruby 2.3.1 Rails 5.0.0.1 前提 Bookがauthor,publisher,categories をもつ Authorがaddr…

1年ぶりにbrew updateした時のメモ

どんな時のため MacのOSをバージョンアップしたりすると brew update がうまくいかない 環境: macOs Sierra バージョン:10.12.2 きっかけ 開発はVagrantでしたりするけど、ローカルでサクッとrubyの動作をチェックしたいときに、rubyのバージョンを変更し…

どうせRailsの環境構築するなら本番環境にも応用できるようにする

Railsに限らず、Webサービスを開発する場合には開発する環境の整備が必要。 開発は普段自分のmacやWindowなどのローカルPCでしていると思いますが、最終的には本番環境で利用できるものでなければならない。 自分は以下の理由から、開発段階から本番環境に近…

Application Load Balancer(ALB)に登録されているTarget GroupのEC2からprivate ipを一括取得する

Capistranoなどで、ロードバランサー(ELB)に紐付いているWebサーバー(EC2)にデプロイする際にIPアドレスを直接記述するのではなく、 ロードバランサーのARNから動的に取得する方法。 なにがうれしい インスタンスのIPが変更になった時や、台数の増減があった…

PPAPのインターフェース-Rubyの場合-

PPAP(ロングバージョン)をRubyで表すと、どうなるか考えてみた。 www.youtube.com # Pen-Pineapple-Apple-Pen piko = PikoTaro.new piko.push(Pen.new) piko.have?(:pen) # => true piko.push(Apple.new) piko.have?(:apple) # => true ap = piko.pull ap.do…

Rails 5.0 で地味にうれしかった事

Lチカ をつくるにあたって、Rails 5.0 を利用したので、ここまでで感じた地味にうれしかった事。 rakeコマンドをrailsコマンドに統一 force_sslについて Rails 5.0 に入ったDB破壊系taskの防止処理について enumの定義に:prefix/:suffixオプションを追加 モ…