goo blog サービス終了のお知らせ 

Ruby on Rails フォオオオオオオオオオオオオオ!!

Ruby on Railsの参考書やサイトの写経を行っています。あと他になんかやったこととか書いていくかも

Ruby on Rails 本体を持つビューヘルパー

2015-09-01 06:59:19 | ビューヘルパーの自作編
form_tagやcontent_tagのように
本体をもつビューヘルパーも作ることができます。
ここでは引用を表すblockquoteタグを生成するメソッドを作ってみます。



で、できたのがこのソースです。



要点は二つ
&block引数を定義して、本体を受け取れるようにする。
・optionsを設定する引数をハッシュで受け取るよう定義して、そのままcontent_tagに渡せるようにする。


これらを踏まえてerbソースを見てみましょう。
一つ目の引数にURL、二つ目にサイト名、三つ目のハッシュがoption、4つめが本体です。



実際の出力です。



HTMLも見ておきましょう。ちゃんとできていますね。




アイデア次第ではいろいろ面白いことができそうです。しかし何も思い浮かばない。

Ruby on Rails HTML文字列を返すビューヘルパー

2015-08-25 17:46:05 | ビューヘルパーの自作編
ビューヘルパーの返り値としてHTML文字列を返したい場合は
に紹介したcontent_tagを使ってビューヘルパーを作ります。


さっそく作ってみましょう。
モデルのオブジェクトと列名を受け取り
列の中身でリストを作るヘルパーです。



作ったヘルパーをビューから呼んでみましょう。
Memberモデルnameのリストを作ります。



ブラウザから見ると
ちゃんとmembers.nameのリストが出来ています。



HTMLソースはこんな感じです。
閉じるHTMLもちゃんと出来ています。




content_tagを使うことで
文字列を切り貼りしたりエスケープ文字を意識することなく
HTMLを作成して返すことができ、だいぶ手間が省けます。

Ruby on Rails 自作したビューヘルパーの参照を制限する

2015-08-24 10:10:01 | ビューヘルパーの自作編
前回はビューヘルパーを自作しました。
そこで『ヘルパーは基本は同じアプリのすべてのビューで使うことができます。』と書きました。
しかしこれだとヘルパーの名前が被った時に区別ができません。


そこで(アプリのルート)/configフォルダ内にある
application.rbファイルをいじります。



class Application < Rails::Application内に
<strong>config.action_controller.include_all_helpers = falseを設定します。
これでビュー内ではapplication_helper.rbと
コントローラー名に対応した「(コントローラー名)_helper.rb」だけが読み込まれます。



実験してみましょう。
まずは前回作ったヘルパーをViewHelperから削除します。



それをExerciseHelperに移します。



apprication.rbを更新した後は
rails serverを起動しなおしましょう。
これを書いている人はここで数時間ハマりました。
昨日に続いて俺の休日がアアアアアアアアアア!!!!




ビュー「view」からややこしいな
format_datetimeが読み込めなくなりました。






Ruby on Rails ビューヘルパーを作る

2015-08-23 17:41:26 | ビューヘルパーの自作編
今回はビューヘルパーを自作します。


ヘルパーは
(アプリのルート)/app/helpersフォルダ内に
自動生成されているファイル内に書きます。



ファイルの中身は
初めは何もありません。



ヘルパーを書きます。
日付型の引数をフォーマットして返します。
日付型でなければ空を返します。



さっそくビュー内で使ってみます。



ヘルパー内で作ったようにフォーマットされました。




共通関数ライブラリみたいなもんですね。


ヘルパーは基本は同じアプリのすべてのビューで使うことができます。
対応する名前のビュー内のみで使えるわけではありません。