Railsアプリの検索機能にjqueryuiオートコンプリートウィジェットを正常に追加しましたが、正常に機能します:)。これが私のコードです
javascript
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#search').autocomplete({
minLength: 1,
source: "<%= list_path(:json) %>",
focus: function(event, ui){
$('#search').val(ui.item.user_name);
return false;
},
select: function(event, ui){
$('#search').val(ui.item.user_name);
return false;
}
})
.data("autocomplete")._renderItem = function(ul,item){
return $("<li></li>")
.data("item.autocomplete",item)
.append("<a>" + item.first_name + " " + item.last_name + "<br>" + item.user_name + "</a>" )
.appendTo(ul);
};
});
コントローラのアクション
def list
list = []
@user = User.where("user_name LIKE ? or first_name LIKE ? or last_name LIKE ?", "#{params[:term]}%" , "#{params[:term]}%" , "#{params[:term]}%")
@user.each{|user| list << user}
respond_to do |format|
format.json { render :json => list.to_json,:layout=>false }
end
end
したがって、基本的にjavascriptは、検索ボックスに入力されたすべての文字の後にアクションを呼び出し、その結果がhtmlビューに追加されます。
しかし、first_name、last_name、user_nameだけでなく、user_imageも含めることでさらに追加したい
返された結果を使用して、JavaScript内から画像を取得しようとしました。
<script>
.
.
.
// somwhere inside my javascript code
var id = item.id
<% @image= UserImage.find(:first,:conditions=>["user_id=?",id]) %>
.
.
</script>
次に、user_name、first_nameなどと一緒に画像を追加しようとしました。
<script>
.
.
.
.append("<a>"+ <%=image_tag(@image.image.url(:thumb))%> + " " + tem.first_name + " " + item.last_name + "<br>" + item.user_name + "</a>" )
<script>
しかし、それはうまくいきませんでした...ため息
どういうわけかjsonに(コントローラーから)画像パスを追加して、それをjavascriptファイルに追加できるかどうか疑問に思っていました
plsヘルプ:(