Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 若模型上的搜索并没有命中,那个么调用javascript文件_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

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