「Rails」タグアーカイブ

CakePHP3 rails のように部分テンプレートを使用する方法


Rails を真似て作られたといわれている CakePHP で、 部分テンプレートの使用例を説明します。 英語ドキュメントを見ると正しく設定できるのですが、 日本語ドキュメントは古い状態なので、日本語ドキュメントを見ていると解決できません。

続きを読む CakePHP3 rails のように部分テンプレートを使用する方法

Rails seed から task を実行したときの方法


Rails の seeds.rb で task を実行したいとのことで、 やり方を調べました。

実践 Ruby on Rails
実践 Ruby on Rails 4 本格 Web プログラミング

環境

  • Ruby 2.2.2p95
  • Rails 4.1.8
  • Rake 10.4.2

rails g task sample shot とコマンドを実行して、タスクを作っておきます。 下のように。

タスク自体は bundle exec rake sample:shot で実行できます。 これを更に bundle exec rake db:seed とやったときにも実行されるようにするのが今回のゴールです。 おそらく、 rails のコード内から task を実行するのも似たような感じでいけると思います。

解決策

seeds.rb に下の記述を追加します。

環境 (test, development, production) は、 rake db:seed で設定されたものが引き継がれます。 上では SOMETHING'value' という値を設定しています。 rake db:fixture:load FIXTURES=xxxx で設定するようなやつです。


rails で sitemap を作成する gem


Rubyサイトマップ を作成する gem を紹介します。

sitemap_generator

sitemap_generator を使うと、サイトマップが簡単に作成できます。 Ruby だけでも使えます……が、ここでは Rails の上で私が使用した方法を紹介します。

使用方法

環境は次の通りです。

  • Ruby 2.0.0p451
  • Rails 4.1.0
  • sitemap_generator 5.0.2
  1. Gemfilesitemap_generator を 追加して bundle install します。
  2. rake sitemap:install を実行します。 config/sitemap.rb というファイルが作成されます。
    • このファイルに記述したサイトマップ生成スクリプトは rake sitemap:refresh によって更新されます。
    • config/sitemap.rb が作成される他は特になにも起こりません。 sitemap_generatortasks.rb を覗いてみるとよくわかります。
  3. sitemap.rb を編集します。
    • デフォルトでは ルート(“/”)へのサイトマップが3つ作成されます。 それら3つは changefreq が異なりますが、いらないので削除します。 コード内に SitemapGenerator::Sitemap.include_root = false を記述します。
    • SitemapGenerator::Sitemap.create_index = true を記述して、サイトマップのリストを作成します。
    • サイトマップの作成をpingで通知します。 Google と Bing に届くように設定します。 Yahoo! は Google と検索エンジンが同じであるため Yahoo! の設定は必要ありません。
    • lastmod, priority, changefreq などを出力したくない場合には、それぞれの値に nil を設定します。
    • rake sitemap:refresh が実効されるように、 crontab に記述します。

ツールチップを表示するコード


Ruby On Rails のシステムの中でツールチップを表示しようと思ったときのメモです。

やることは単純で、クリックされたらヘルプを表示して、もう一度クリックされたらヘルプを隠すというものです。はてなマークがクリックされたらツールチップを表示・非表示するということです。

実装は javascript (jQuery) と CSS で行いました。そして Rails の helper に便利メソッドを作りました。以下がそのコード。

環境

  • Ruby 1.8.7p374
  • Rails 3.0.1
  • jQuery 1.4.3

基本

上のように javascript と css を記述して、次のように HTML を書きます。

image/quotation.png はクリックするモノです。その画像をクリックすると表示・非表示が切り替えます。

正確にいうなら、画像を囲んでいる span をクリックすると、その直後のタグの表示・非表示を切り替えます。つまりクリックするものは画像でなくてもよく、もっというならツールチップ以外にも使えるということです。

helper の活用

Rails には helper というものがあるので活用してみます。

このメソッドを次のようにして使うと、上に書いた HTML のように出力されます。

2番目の引数はデフォルト値を設定しており、引数がなくてもいいようにしています。

私がこの tooltip 表示を書き始めたら ほかの人が随所で真似し始めたので、もっと楽にできる helper のメソッドを作ったというお話でした。