如何将自动完成搜索框重定向到显示视图
How to redirect autocomplete search box to show view
我是rails的新手,感谢您的投入。我创建了一个带有自动完成搜索框的应用。当用户键入一种疾病时,我希望他被重定向到"显示"视图,其中包含有关该疾病的一些信息。自动完成功能正常,但没有重定向。
这是我的完整代码https://gist.github.com/ollac21/0ab136d46d06e37fb2c2
我的路线
Rails.application.routes.draw do
resources :diseases do
get :search, :on => :collection
end
root 'diseases#index'
end
我的控制器
class DiseasesController < ApplicationController
before_action :set_disease, only: [:show, :edit, :update, :destroy]
def index
respond_to do |format|
format.html
format.json { @diseases = Disease.search(params[:term]) }
end
end
def show
end
private
# Use callbacks to share common setup or constraints between actions.
def set_disease
@disease = Disease.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def disease_params
params.require(:disease).permit(:name)
end
end
我的观点
<h1> Type any disease to find info about it </h1>
<div class="diseases-search">
<input type="text" id="diseases-search-txt" autofocus>
<div class="results" id="diseases-search-results"></div>
</div>
<script>
$(function() {
new app.Diseases;
});
</script>
我的爪哒语
app.Diseases = function() {
this._input = $('#diseases-search-txt');
this._initAutocomplete();
};
app.Diseases.prototype = {
_initAutocomplete: function() {
this._input
.autocomplete({
source: '/diseases',
appendTo: '#diseases-search-results',
select: $.proxy(this._select, this)
})
.autocomplete('instance')._renderItem = $.proxy(this._render, this);
},
_render: function(ul, item) {
var markup = [
'<span class="name">' + item.name + '</span>'
];
return $('<li>')
.append(markup.join(''))
.appendTo(ul);
},
_select: function(e, ui) {
this._input.val(ui.item.name);
return false;
}
};
另外,我用它来"激励自己"https://github.com/lugolabs/tutorials/tree/master/amazing
我真的很感激一些帮助谢谢!
您可以在控制器(或json view
)中为每个desease
生成路由,并将其添加到json
响应中。然后将链接添加到标记中:
_render: function(ul, item) {
var markup = [
// Assuming that item is the disease record
'<a href='+ item.the_url +'><span class="name">' + item.name + '</span></a>'
];
return $('<li>')
.append(markup.join(''))
.appendTo(ul);
},
相关文章:
- 检测重定向并相应地显示网站
- 在重定向到 ASP.NET C# 中的另一个页面之前显示客户端脚本警报
- 如何完成表单后使用 AJAX 重定向并在其他页面上显示数据
- jQuery移动显示页面5秒钟,然后重定向
- 如何重定向页面并在新打开的页面上突出显示某些文本
- 如何从asp.net中显示的JS页面重定向到特定页面
- 选择选项“重定向获取值”和“在重定向页面上显示”
- JQuery Mobile,通过window.location重定向可阻止页面显示事件
- 重定向后在页面上显示通知
- 谷歌CSE-我可以显示嵌入在我的网站上的页面本身,而不是从结果视图重定向到页面
- 如何在单击按钮重定向页面时显示加载程序gif
- 在单击链接时在屏幕上显示消息,直到重定向
- 重定向并显示警报(如果处于隐身状态)
- 在 Django 中页面重定向时显示加载
- 成功时 PHP 页面重定向,否则显示错误
- 在 中显示警告框 asp.net 将重定向到空白页,然后返回到原始页面
- 确实存在一种重定向和显示 javascript 消息的方法
- 停止重定向并显示对话框
- 让 Chrome 和 Safari 浏览器在重定向后显示缓存的页面
- 重定向显示警告框