Rails

todo-app つくった (auth 編)

全ページ(まだ1ページしかないけど...)、ログインしていないとみれないようにした。 Amazon Cognito の UserPools を用いて、ここからのみユーザ登録は可能という設定 API 側 JWTの署名をチェックして、直接API を叩かれるのをはじく JWK (JSON Web Key) は …

todo-app つくった (pagination 編)

API 側 Qiita, GitHub などの API を参考に、RFC 8288 - Web Linking にのっとり、レスポンスのLinkヘッダを使ってページの情報を返すことにした Total-Count で全体の件数も返すようにした Rails では pagy と api-pagination を使ってページ情報をLinkヘッ…

todo-app つくった

技術スタック Rails (6.0.0.rc1) MySQL React React Hooks Typescript Repo github.com 所感 Typescript と React Hooks 完全に理解した SPAでログイン機能 (firebase or Amplify + Cognito とかで?)もつけたい どうやんだ? SPAでのページネーションも実装…

ActiveRecord で更新した diff 知りたいとき

user レコードの uid, name をアップデートした diff (id, created_at, updated_at の diff は抜いた) (main)> user = User.find 1 (main)> old_user = user.dup (main)> user.update(uid: 'fugafuga', name: 'ふが') (main)> diff = (user.attributes.to_…

delayed_job で登録したやつを変えたいとき

非同期処理とかで使われる delayed_job で登録しているキューの内容を変えたい時 (元を削除して、登録し直してもヨサソウだけど) # job 登録 job_id = Notifier.delay(run_at: 2.hours.from_now).some_method(first_args, second_args) # 取り出す job = De…

React on Rails で hello world してみる

お久しぶりです。 最近は、Vue.js を触っていましたが React.js というやつも触れてみたかったのでやってみました。 今回は環境を作って、hello world をするところまでです。 やりたいことリスト React を使う(Rails の中で) ES6 も使う(JSXも触ってみた…

つぶやき予約サービスつくりました。

みなさん、あけましたおめでとうございます。 お正月休みに勉強がてら作りました。 みらツイ http://miratwi.com/ 未来へツイートということで、サービス名は「みらツイ」です。 開発環境は Rails4 MySQL + Nginx + Unicorn AWS (micro) 全部のせ Railsのデ…

Railsのcontent_forが便利

Railsでページ毎にmetaタグのキーワードなどを変更したい時にcontent_forメソッド使うとすごく便利で簡単です。(OGPのメタタグの設定とか) OGPのメタタグの設定を例にやってみます。 OGPとは facebookとかでよく使われてるアレですね。 コンテンツページ(ペ…

Railsでtwitterのたれながしやってみた

いつからかわかりませんが twitterのgemがアップデートされていました。 (まだrc版みたいですが) https://github.com/sferik/twitter 新しいバージョンだと Streaming API にも対応してる?みたいなので さっそく試してみました。 リアルタイムに情報を受…

T or F

まず、rubyだと 「偽」になるのは nil と false だけ。 (PHPとかJSだと "" , " ", 0 , "0", null とかどれが「偽」扱いになるのかすぐ忘れる。) 判定メソッドのメモ(抜粋コピペ)。 nil? nilとfalseを判別したい場合などに、==演算子を使わずに書ける。 emp…

Rails4やってみた。

Rails4.0がリリースされたので、いろいろやってみました。 もちろん、Ruby2.0も。 環境構築やらは Ruby2.0, Rails4.0 beta1のインストール を参考に。3系からの変更点、改良点 Finderメソッドの除去(all, whereを使いましょう) matchのルーティング設定が…

link_toをPOSTとして使う

Railsのlink_toは普通GETのリンクを生成するけど、オプションで :method => :postを指定するとPOST的な使い方ができます。 <%= link_to sanitize("<i class='icon-thumbs-up'></i>ファイト!"), likes_path(user_id: current_user, work_id: u.id), :method => :post, :remote => true %> …

自宅にて合宿。

3連休の後半2日間に自宅にて後輩と合宿しました。それぞれの目標 後輩:twitter認証の掲示板 自分:twitter認証の簡易勤怠管理(デプロイまで)でもまぁいろいろハマりました。。まず、環境構築。。 今回は後輩と共にRails(MySQL)の環境構築からです。。 …

Web界の三種の神器

某企業のインターンに参加してきました。 内容は4人1チームで「イケてるWebサービスを作る」というものでした。 企画から開発、マネタイズなどを考え最後に社員にサービスを提案するということでなかなかハードなものでした。。 (企画にかなり時間がかか…

RailsのscaffoldでパパっとCRUD実装

Railsのscaffoldジェネレーター機能を使うと、 テーブルの基本的なCRUD操作を実装できます。型って何使えるんだっけ?とか迷ってしまうのでメモ。 とりあえず、基本的な使い方。 $ rails g scaffold モデル名 カラム名:型モデルは単数形でよかったはず。。ん…

Railsのpath表記(ビューヘルパー)

link_toとかbutton_toで引数のURL指定を簡単にできます。 いつも忘れてしまうのでメモっときます。例えば route.rbで resources :books と指定した場合以下のようなルート定義が自動生成されます。 ヘルパー名 得られるパス books_path /books book_path(id)…

Railsでページネーションを実装する(kaminari)

RailsではKaminariというgem を使うと簡単にページネーションが実装できます。 (DBの検索結果から)Gemfileに gem 'kaminari' を追記して $ bundle install これで準備おk。 こんなかんじで使えます。 #検索結果を10件に分割した3ページ目を取得する @user…

Railsで共通メソッドの作り方

コントローラ全体の共有のメソッドを追加する 異なるコントローラ間で共通に使用するメソッドは, ApplicationControllerクラスで定義します。 各コントローラは, 原則としてApplicationControllerを継承しているのでここ(app/controllers/application.rb)で…

Rails 3.1 で の1番簡単な認証方法

ASCIIcastsさんの記事を試してみました。こちらにはRails3.1を用いて複数ユーザに対応させる方法も記述されています。 Rails 3.1 では認証の新機能があります。 おそらく1番簡単な認証方法だと思います。 (HTTPベーシック認証ですが。。。)やり方はコント…

テキスト型をTime型に変換して整形する

ruby , rails で DBとかAPIからjson形式などで取得したデータ(テキスト型)を 変換して日付データに整形する方法をメモっとく。まず 例: strftimeメソッドの使い方 <% @current = Time.now %> <%= @current.strftime('%Y年%m月%d日 %H:%M:%S') %> 出力結果 2…

Rails 3.1 で auto_link メソッドを使いたい場合

Rails 3.1 では auto_link メソッドが使えなくなりました。auto_link メソッドを使うことで、指定された文字列に含まれるURLやメールアドレスを検出して 自動的にアンカータグに変換してくれます。個人的にはなかなか便利なメソッドだと思います。使いたい方…

Rails 3.1 で twitterサービスをつくってみた。

Rails 3.1.2でtwitterサービスを作ってみました。 いろんなライブラリや外部サービスを使った(様々な人の力を借りた) の意味を込めて"JustBorrowIt"という名前にしました。今回はテスト的にHerokuを使って公開しています。 原因不明のエラーなどがあるので…