我在模特上搜索:
def self.search(search)
if search
where('Bezeichnung LIKE?', "%#{search}%")
else
all
end
end
我想改变的是,当搜索没有命中时,它会在icd / index.js.erb中触发一个javascript文件
index.js.erb的:
$('#chapter_list').html("<%= escape_javascript(render(:partial => 'icd1')) %>");
我该怎么做?
答案 0 :(得分:1)
我会做这样的事情,我会创建另一种模型方法,如下所示:
型号:
def checkSearch(search)
if search
where('Bezeichnung LIKE?', "%#{search}%")
end
end
控制器
@checker= Model.checkSearch(search)
在视图中,您可以检查@checker是否与null不同并重新部分
我知道这个aproach会查询数据库两次,但这是一个开始。
更多想到你可以在第一个模型方法中返回一个数组,第一个位置有一个bollean,第二个位置有一个活动记录对象。
希望我给你一些方向!答案 1 :(得分:1)
大概这个类方法(self.search)在模型上。由于您的控制器是您返回响应的地方,因此您需要让控制器使用javascript代码进行响应。
类似的东西:
def index
results = Model.search(params[:search])
respond_to |format| do
if results
format.html { render 'index.html.erb' }
else
format.js { render 'index.js.erb' }
end
end
end