我刚刚成功地将 jquery ui 自动完成小部件添加到我的 rails 应用程序中的搜索功能,它工作正常:)。这是我的代码
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 视图中。
但我想添加更多内容,不仅包括名字、姓氏和用户名,还包括用户名
我尝试使用返回的结果从 javascript 内部获取图像,例如
<script>
.
.
.
// somwhere inside my javascript code
var id = item.id
<% @image= UserImage.find(:first,:conditions=>["user_id=?",id]) %>
.
.
</script>
然后我尝试将图像与用户名、名字等一起附加,例如
<script>
.
.
.
.append("<a>"+ <%=image_tag(@image.image.url(:thumb))%> + " " + tem.first_name + " " + item.last_name + "<br>" + item.user_name + "</a>" )
<script>
但它没有用......叹息
我想知道我是否可以以某种方式在 json 中添加图像路径(来自我的控制器),然后将其附加到 javascript 文件中
请帮助:(