git の rebase を普段から積極的に活用するメリットは? git を使う場合、 リモートから pull するときは --rebase オプションを付けるべき リモートに push するときは rebase してから push すべき という主張を良く目にするのですが、このメリットが今ひとつ理解出来ません。 前者は pull する際に Non Fast-Forward マージが発生すると、意図せずマージコミットが大量に出来てしまい、共用リポジトリのコ...
URL設計で悩んでいます。 現在、Railsで開発しているのですが、 URL設計で困った点があり質問させていただきます。 例を挙げて説明させていただきます。 Blogというリソースがあったとして、これにファイルからデータをインポートする機能を実装したいとします。 そのためには、アップするファイルを入力させるための画面の URL と、それをアップする際に指定する URLがいると思います。 その時の URL設計に悩んでいま...
Railsでグラフ表示ツールを利用する際にコントローラのデータをビューで受け取るには Railsで「google chart tools」や「jqplot」等のグラフ表示ツールの利用を考えていますが、それらのサンプルプログラムには、サンプルプログラム内にデータが直接記述されているため、どのようにコントローラからビューへデータを渡したらよのか分かりません。 ネット上で調べると、「json形式で送ると良い」とような記載が散見されるのですが、具体的にどのよう記述したらい良いのでしょ...
puppetでyumrepoのenable/disableはどうするのがいい? yumrepoで入れておきたいけれども特定のパッケージをインストールする時だけにenableしたい場合皆さんどうしてますか? augeasを使うとかいくつかアイデアはあるもののベストプラクティス的なものがあればそれを使いたいです。 本家でもサポートしようという動きはあるようですが、現状(3.0.0)ではまだリリースされていないようですし・・・。
Railsで任意のValidateを設定するには? Blogの各記事に複数のCommentsを付けられるようにしていて、 Commentsの投稿数に上限を設けるにはどうしたら良いでしょうか?(例えば、コメント投稿数上限を5として6個目を投稿しようとするとエラーになる) どなたかご存知の方、以下について教えて頂けますでしょうか? 上記の制限を設ける場合、Model内のcomment.rbにvalidateを設定するというやり方で良いでしょうか?...
Herokuにアップロードした際にトップ画面が変更されてしまいます 起きている問題 Railsを使ってローカル環境で開発をしたのですが、いざHerokuにアップロードしてみると、 消去した筈のトップ画面(public/index.html)が表示されてしまうのです。 config/routes.rbのファイル内でもルートを root :to => "blogs#index" のように設定しているし、 heroku run rake routes をやってみる...
pjaxでリクエストが2回発生してしまう 下記のようにpjaxを試用するプログラムを書いているのですが、pjaxを発生させるaタグをクリックした際に、2回リクエストが発生してしまっています。 1度目のリクエストではrequest.headers['X-PJAX']が"true"になっていますが、2度目のリクエストでrequest.headers['X-PJAX']がnilになり、通常のページ遷移となってしまっています。 何か原因と考...
Rubyのaliasとalias_methodの違いは? Rubyの alias と alias_method の違いは何でしょうか? すでに存在するメソッドに別名を付けられるのは、どちらも同じだと思うのですが、使い方や目的に違いはありますか?
Ruby でメモリリークの原因を調査する方法 Ruby 1.9.2 でそれなりに多いオブジェクト (数十万) を扱うコードを書いています。 できるだけメモリリークしないよう書いてはいたのですが、動かしてみるとどんどんメモリ使用量が増えていきます。 こういった場合に、どこが原因でメモリリークが起きているか調査する方法はありますでしょうか? dike という gem が使えそうだったのですが、いまのところ 1.9 には対応していないようです。
パス末尾のデリミタの有無を吸収したい ファイル操作等のちょっとしたスクリプトを書く際に、 パスやURLの、末尾の"/"の有無を吸収したい場合があるのですが、 Rubyで簡潔な書き方があれば教えてください。 例えばコマンドラインからパスの入力を受け付けるスクリプトの場合、 "/home/hoge"と"/home/hoge/"のどちらを入力されても、 "/home/hoge/"に内部的に整形したいです。 現状は、下記のように書いてい...
Railsのhメソッド、uメソッド、jメソッドはどのように使い分ければ良いでしょうか? Railsのビューではhメソッド(html_escape)、uメソッド(url_encode)、jメソッド(json_escape)という3つのメソッドを使うことができますが、どのように使い分けるのが正しいでしょうか。
ActiveRecord でモデルに雑多な設定情報を持たせるには ユーザごとに設定情報を保存できるようにしたいという場面はよくあるかと思います。独立したテーブルを作るには大袈裟で、とはいえ1つのカラムに serialize して突っ込むと入力値のチェックや型変換が煩雑になって大変悩ましいのですが、何かクールなソリューションはないものでしょうか。 設定項目は例えばこんなデータです: { timezone: '+0900', show_thumbnail: t...
Ubuntuで負荷が高かった場合にメールで知らせるには? 現在、桜VPS上のUbuntuでrailsを使ったサーバ運用をしています。 しかし今後運用していく上で、負荷が高い場合はメールで知らせる様なツールを探しています。 具体的には 「sar」コマンドで表示される様な、平均的なCPU使用率やスワップ頻度等が、一定の値を超えた場合にメールで知らせることができればなと思っています。 一応自分なりに実装する方法としては sar -r > hoge.txt...
jQuery Tokeninputで候補に存在しないデータを登録可能にするには? jQuery Tokeninput Demo #258 Token Fields - RailsCasts jQuery Tokeninputを使用して、よくあるタグ付けの処理を実装しようとしているのですが(実現したい処理はQA@ITのタグ入力部分のような処理です。)、jQuery Tokeninputを使用した場合、入力時に入力補完候補の中に該当する候補が無いものを入力すると、テキストボッ...
Rubyの例外クラスの階層を一覧するには? Rubyの例外クラスはどういう階層になっているかを自分の環境で調べるにはどうすればいいですか? Exceptionがいちばん祖先にいる階層のことで、何となくClassクラスのオブジェクトをリストアップして、それらの ancestors に Exception が含まれるかどうかを見ればいいような気がしつつ、やり方が分かりません。よろしくお願いします。
Ruby起動時にデフォルトでrequireさせるには Rubyでrequireして利用するものを都度requireするのではなく、Ruby起動時にデフォルトでrequireさせておく方法はあるのでしょうか? ruby -r tappという指定すら省略したいです。 何か設定ファイルのようなものでRuby起動時にrequireさせる方法があれば教えてください。
Rails3でのリアルタイム通知実装のベストプラクティスは?(Pusher以外) よくあるタイムラインの未読数を表示する部分や、チャットでページをリロードせずに、他の人の発言を同じルームに入っている人、全員のウィンドウに反映させるなどのリアルタイムな処理をRails3に実装する場合、現時点でのベストプラクティスや、それに近い実装方法、個人的に最も良いと考えている方法などありますでしょうか? また、Rails4でリアルタイム系の機能が導入されるという話も聞こえて来ていますが...
ジョブキュー処理のResqueとDelayed Jobの使い分けの方針などはありますか? 現在、Ruby on Railsから使用するジョブキュー処理についてのGemは、ResqueとDelayed Jobがメジャーかと思います。 defunkt/resque collectiveidea/delayed_job Ruby ToolboxのBackground JobsのカテゴリではResqueの方が上位ランクになっていますが、それぞれのGemの用途として、向き不向きなどはあるの...
PostgreSQLとMySQLはどちらかに明確な優位性がありますか? 現在オープンソースのRDBMSとしては、PostgreSQLとMySQLがほぼデファクトスタンダードになっているかと思います。 普段はRuby on Railsで開発を行なっているため、ActiveRecordの恩恵もあり、あまりDBの差異を意識せずにプログラミングを行う事も出来るので、そこまでどちらでなければのような拘りは無いのですが、PostgreSQLとMySQLで、個人の好み以上の明...
Rubyのincludeとextendについて Rubyを使い始めて半年ほどの者です。 先日、Module を使うときに include ではなく extend を使う場合があることを初めて知りました。 WEBで include と extend の違いについて調べてみましたが、Module のメソッドをクラスのインスタンスメソッドのように使いたいならincludeを、クラスメソッドのように使いたいならextendを使う、という程度の表面...
RDBMS でユーザーが自由に設問を用意できるフォームアプリ等での適切なschema 興味が出たので質問します。Google Drive (docs) 等にある Form 等では自由に設問が用意できますが、以下のようなフォームアプリの時適切なDBの構造はどうなのか気になります。 フォームを自由に作成できる フォームにはほぼ無制限に設問を作成でき、チェックボックスやテキストフォーム、日付など複数のフォーマットがある 設問毎に必須かどうかも指定できる SQLで検索できる必要はない...
ChefのrecipeでCentOSを使用し外部リポジトリとしてremiやepelを追加して構築するための方法は? Chefを利用してCentOS環境を構築したいのですが、標準のパッケージでは無く外部リポジトリを追加してそのパッケージを利用したいと思っています。recipeにどのように記述すれば良いのでしょうか?
MySQL + ActiveRecordでUTF-8が文字化け 現在、ActiveRecordを生で(Railsを使わないで)使っているのですが、文字化けが発生してしまいます。 DBはMySQL、OSはUbuntuを使っています。 以下に具体的なソースを書かせていただきます。 # -*- encoding: utf-8 -*- require "active_record" require "./models/talk.rb" ActiveRecord:...
remoteブランチの更新方法 次のような場合に、git push -f を使わない正しい方法があるなら知りたいです。 1.masterからbranchを作る git checkout -b br1 2.br1上で開発を行う 3.オンラインにも置いておきたいのでbr1をremoteにpushする git push origin br1 4.origin/masterが更新されたのでpullする 5.br1をmasterにr...
Rails3 + ドラッグ&ドロップ選択 + 複数ファイルアップロードのベストプラクティス Rails3 + ドラッグ&ドロップ選択 + 複数ファイルアップロードのベストプラクティスを探しています。 満たしたい要件は下記の通りです。 Rails3.2.8で動作可能 ドラッグ&ドロップによるファイル選択 複数ファイル同時アップロード可能 ざっと探してみた感じでは下記のようなGem、JavaScriptライブラリがありそうなのですが、どのようなライブラリの組み合わせがベストorベターで...