url_for_file_columnをeachの中で使うには
http://d.hatena.ne.jp/kusakari/20070530が参考になる。ファイルも消してくれるのは良いね。
railsのfile_columnは便利だが一覧表示の各行で画像を表示しようとしてurl_for_file_columnを使うとエラーになる。
<% @memo.each do |memo| -%> <tr> <td><%= memo.title %></td> <td> <%if memo.image? -%> <img src="<%= url_for_file_column("memo", "image") %>") <%end-%> </td> </tr> <% end -%>
具体的にはこんな感じ。
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.image_relative_path
他の人は悩んでないので解決策があるのはわかっていたが、2日ほどはまった。
■原因
url_for_file_columnメソッドはインスタンス変数対象じゃないと使えません。
# プラグインの公式のページの下のほうに英語で書いてあった気がする
■解決方法
繰り返し操作の冒頭でローカル変数をインスタンス変数にぶち込みましょう。
そして、そのインスタンス変数を対象にurl_for_file_columnを使ってください。
<% @memo.each do |memo| -%> <% @memo_image=memo %> <tr> <td><%= memo.title %></td> <td> <%if memo.image? -%> <img src="<%= url_for_file_column("memo_image", "image") %>") <%end-%> </td> </tr> <% end -%>