[Rails] たくさんのroutingの頭に動的なパスをつける方法

経緯 マスター管理された文字列でシステムを切り分けたいことがあると思います。 例えば、Categoryモデルの名前(slugと呼ぶことにします)を用いてURLを/:slug/postsといったものにしたい時に、これだけであれば、routes.rbの設定は以下のもので十分です。 match '/:slug/posts', to: 'posts#index', via: 'get' しかし、これが多く... 続きを読む

[Rails] 管理画面と公開画面を名前空間を使ってメンテナンスしやすくする

経緯 Webアプリケーションでは往々にして管理画面と公開画面に大きく別れることが多いです。 ただ、「両方とも、productを扱うから!」と単純に全てをapp/controllers/products_controller.rbに記述してしまうと、ファイルが大きくなり、メンテナンシビリティが下がってしまいます。 そこで、今日は以下の様な設定の方法を紹介します。 管理画面は/admin/produc... 続きを読む

[Rails] 基本のRouting

基本中の基本のRouting設定の話になるのですが、改めて振り返ってみます。 基本の考え方 RailsではGET/POST/PUT/PATCH/DELETEの使用方法を明確に分けて考えます。 それぞれイメージとしてSQLと以下のように対応します。 method SQL 意味 GET SELECT データの取得 POST INSERT データの作成 PUT/PATCH UPDATE データの更新 D... 続きを読む

Runge-Kutta法で微分方程式を解いたらちょっと感動した話

経緯 後輩が研究として、物理シミュレーションして、VRで遊べるアプリケーションを作っていた。空気抵抗とか結構考えないといけないみたいで、複雑な微分方程式を解かなきゃならないっぽい。んで、大学時代にカオスとかやってた自分に「Runge-Kutta法」教えて!みたいに来たので、プログラムを作ってみた。 Runge-Kutta法ってなんじゃい! http://hooktail.org/computer/... 続きを読む

ArduinOSC – Arduinoの信号をOSCに変換するツール作った

経緯 ハッカソンとかで、複数人で開発を進めようとして、ハードとソフトのつなぎがある場合、 ハードウェア インターフェース ソフトウェア とおおまかに分けられると思う。 で、こういう分け方をした時は、俺がハードウェアとインターフェースを担当して、誰かがソフトウェアをやるという分け方が多い。 俺がインターフェース部分で使うのはいつもopenFrameworksだったり、Processingだったりする... 続きを読む

border-box指定でjQueryを使うときのheightとwidthに注意

経緯 グリッドデザインを使う上で、paddingやborderの幅がwidthやheightに含まれているとそこまで計算した上でmarginやwidthを決定しないといけないので、結構面倒くさいです。 そういうときに box-sizing: border-box; と指定しておくと、widthとheightにpaddingやborderの幅が含まれるようになります。 自分がコーディングするとき、基... 続きを読む

材料から必要な長さの素材を切り出すときの最適解

経緯 後輩から以下のようなLINEがきました。 「適切」という言葉が曖昧だが、以下のように解釈しました。 材料の本数が最小であること。 最後、余る棒の長さが最大であること。 要は、あまり材料を使わず、しかも、あまりを使いまわせるように出来る限り、長く取ろうという話。 とりあえず、俺なりの回答 Rubyで総当りのプログラムを作りました。ちょっと無駄は多いけど、まぁ、ひとまず動くのでいいかなと思います... 続きを読む

Turnipを使ったテストの自動化〜導入編

経緯 「あの関数」が「あれ」を正しく返すか みたいなテストもすごく大事なのですが、実際、ユーザが触るのは表の画面に表示されているものでしかなく、 「あのフォーム」に「あれ」をインプットして、「あのボタン」を押せば「あのページ」が表示される みたいなことが一番ユーザの目につくところです。しかも、そういうところで間違った処理を書いてしまうと、かなり心象がよろしくないものです。 そういう表面的な部分を楽... 続きを読む

Bowerでインストールしたファイルのディレクトリを変更する

経緯 Bowerを使ってるとbower_componentsの中にjsのファイルが入っていきますが、jsだけでなく、README.mdやbower.jsonなどの余計なファイルもたくさんあって、あまり見やすいとは言えません。それが嫌で毛嫌いされているような感じがするBowerですが、ちゃんとそのあたり解決する術は残されています。 こんなときこそ、GruntJSです。GruntJSの導入はここでは触... 続きを読む

TAG LIST

AngularJS Arduino Boids C++ Cocos2d-x CoffeeScript CSS FuelPHP Gem Grunt HTML5 Illustrator impression! JavaScript jQuery Midi MySQL Node.js OpenCV openFrameworks OpenGL osc Pd-extended PHP Processing Raspberry Pi Ruby Ruby on Rails WordPress イベント イラスト ゲーム フロントエンド ライフハック 作曲 展示会 数論 日記 映画 考え事 記事紹介 資料 電子工作 音楽