Ruby on rails 若模型上的搜索并没有命中,那个么调用javascript文件
我搜索了一个模型:Ruby on rails 若模型上的搜索并没有命中,那个么调用javascript文件,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我搜索了一个模型: 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 =>
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')) %>");
$(“#章节列表”).html(“'icd1'))%>”;
我该怎么做呢?我会这样做,我会创建另一个模型方法,比如: 型号:
def checkSearch(search)
if search
where('Bezeichnung LIKE?', "%#{search}%")
end
end
控制器
@checker= Model.checkSearch(search)
在视图中,您可以检查@checker是否不同于null,并重新编辑部分内容
我知道这个aproach将查询数据库两次,但这只是一个开始
仔细考虑一下,您可以在第一个模型方法中返回一个数组,第一个位置是bolean,第二个位置是activerecord对象
希望我能给你一些指导 这个类方法(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