Close icon

アトトックラボ

2018月06日06日

Rails のルーティングをリソースの階層に合わせてネストさせる

あるある系の話でよく使うのだけど、なぜかよく忘れちゃったりもするのでメモも兼ねて書いておきます。

https://HOST/users/:id/diary/:id のようなルーティングを実現したい時の話です。

コントローラは users_controller、users のネームスペースの中に users/diaries_controller があると仮定します。

resources :users do
  scope module: :users do
    resources :diaries
  end 
end
2018月06日06日

RubyのNet::HTTPのリトライについて調べてみた

rubyでサーバーと連携するAPIを開発していてサーバーからの応答が遅い場合に、
リクエストが2回送信される現象があったのでNet::HTTPのリトライについて気になったので調べてみました。

サーバー側はRailsで作成しクライアント側は
下記のようにget methodでリクエストを送信するテストプログラムで確認します。

test_http.rb

require 'net/http'

uri = URI.parse("http://localhost:3000/hoges.json")
req = Net::HTTP::Get.new(uri.path)
res = Net::HTTP.start(uri.host, uri.port) do |http|
  http.request(req)
end
2017月12日18日

enum で定義したい値を再利用したり f.select なんかで使うデータを生成してみたり。

以前 kurusaki さんが書いていた記事 をもうちょっと前に進めて、enum で定義した値を元に f.select ヘルパーなんかで表示する選択肢を生成するようにしてみました。みんな安心のローカライズ対応済みです。

ちなみにステータスはマスタ的に使えるように単体のクラスとして書いて、再利用できるようにしてみました。

2017月11日22日

Railsのマイグレーションでidを追加しない

Railsでテーブルを作るときにidカラムは追加せずに、他のカラムをプライマリキーにしたい場合があります。
このような場合は、作成したマイグレーションファイルを修正して対応します。

モデルを作成

$ rails g model hoge code:integer name:string

作成したマイグレーションファイル

class CreateHoges < ActiveRecord::Migration[5.0]
  def change
  create_table :hoges do |t|
    t.integer :code
    t.string :name

    t.timestamps
  end
  end
end

アトトックラボとは

株式会社アトトックメンバー が技術の話、デザインの話、キャラクターの話、ときどき脱線してガジェットの話やライフハックの話など好きなことを書いています。


連載記事


最近の記事


タグ