私はrails3-jquery-autocomplete
の宝石を見つけました。here.私はユーザーのテーブルに質問しています。名前の横にユーザーのプロフィール画像が表示されるようにドロップダウンします。私はUser
モデルと多形モデルImage
を持っています。各ユーザ:has_one
イメージ。画像モデルでは、ペーパークリップを使用して画像を添付しています。モデルではpic
と呼ばれています。rails3-jquery-autocomplete:結果リストに画像を表示しますか?
ドキュメントのrails3-jquery-autocomplete
gemは、コントローラに:display_value
と指定することができます。私はこのテクニックを使用しています。つまり、値を返すためのカスタムメソッドがあり、正しく返されます。そのカスタムメソッドは、宝石の適切な設定に従ってユーザーモデルにあります。私がしたいのは、ユーザーの画像の:tiny
バージョンを返し、それをドロップダウンリストの名前の左側に表示することです。以下の表示方法は、正常に動作します:
def autocomplete_list_display
"#{full_name}"
end
私は次の操作を行うことを試みた:
def autocomplete_list_display
i = self.image
"#{image_tag(i.pic(:tiny))}" + " #{full_name}"
end
私はその後、私はimage_tag()
一部を省略した場合
NoMethodError (undefined method 'image_tag' for #<User id: 4, full_name: "My Name">):
というエラーが出ますが画像のURLが正しく表示されます。しかし、これを.html_safe
メソッドを使ってもレンダリングされたHTMLとして表示することはできません。注、私はまた、次のことを試してみましたが、HTMLとしてレンダリングされませんでした:
def autocomplete_list_display
i = self.image
"<img src='#{i.pic(:tiny)}' />"
end
私は私が結果にHTMLを埋め込み、名前の隣にユーザ画像を表示することができます:display_value...
メソッドを書くにはどうすればよいですか?これはメソッドを介して行うことができますか、それともjavascriptで行う必要がありますか? (後者の場合は、画像を表示するために.jsファイルを変更するにはどうすればよいですか?)