kade

技術系の記事を書いていきます。

Rails: jQueryUIのinstallの際のエラー

jQueryUIをgem installしたときにapplication.jsとcssにrequireを書いていたらcouldn't find file 'jquery.ui.all'というエラーが出ていたのですが、

//= require jquery-ui
/*
 *= require jquery-ui
*/

という表記に直したら大丈夫でした。Rails4.2です。

https://github.com/joliss/jquery-ui-rails

ドキュメント見たら最初からそう書いてありましたね。

Rails: You have already activated rake ~~, but your Gemfile requires ~~

rails g migration hogeToFuga hoge をやろうとしたときにタイトルのエラーが出た時の対処法です。

Gemfileのバージョンが合ってませんよって感じなのでupdateしてあげるといいみたいです。

bundle update ~~

~~はエラーの出ているgemです。これで解決できるはず。

CSS: サイズを中の要素の大きさに合わせる

どういう条件下かわからないのですが、divのwidthが親要素の大きさに引っ張られてしまうときがあります。

display: inline-block

sassだとこんな感じで子要素の大きさに応じてサイズが変わるようになります。

問題はこれだとinline扱いでblockの改行がなくなるので更にそれをwrapするなりbr付けるなりする必要があるかと思います。

inline-blockとかblockとか作法を知らないのでちょっと気持ち悪い気はしますがとりあえず。

正規表現: renameコマンドで一括でファイルネームを書き換える。

まずMacにはrenameコマンドがないのでinstallします。

brew install rename

以下が一括変換のための正規表現のサンプルです。今回、日付データを削除したかったので以下のようになっています。

rename 's/\d{4}-\d{2}-\d{2}_//' *

2015-02-21_hoge.jpgみたいなデータを全て、hoge.jpgに直してくれます。

renameコマンドのいいところはファイル名重複があったときにwarningを出して、renameを実行しないところですね。mvだと勝手に上書きされるかと思います。

jQuery: 直前の兄弟要素をセレクタで絞り込む

なんだかググり方がわからなくて結構はまりました。

結論は

$("#hoge").prevAll("fuga:first")

でした。

hogeから見て、直前がfirstなんですね。ずっと:lastとしていてはまってました。

ちなみに

$("#hoge").prev()

でも大抵の場合大丈夫なんですけど、直前の兄弟は違う要素だったり、動的でどこらへんにfugaがいるかわからなかったりするときは上記の方法が必要かと思います。

Rails: dbにカラムを追加する

mysqlを直接いじったりすると多分おかしなことになるので

rails g migration AddHogeToControllerName hoge:string

Hogeは適当です。ControllerNameはどのControllerに足したいかで、最後のhogeは追加されるカラムと型です。