从rails控制器调用javascript

从rails控制器调用javascript,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我已经开始在rails上工作,我正在尝试从rails控制器调用javascript 结构如下 应用程序/控制器/ 你好_controller.rb def搜索 //调用show.js.erb 结束 app/views/hello/show.js.erb 基本上我想从javascript调用html文件(div标记) 关键是我不想在页面打开时执行任何操作,只想在点击show按钮时运行javascript 同一点-写入控制器 respond|to do |格式| format.html{ } for

我已经开始在rails上工作,我正在尝试从rails控制器调用javascript
结构如下

应用程序/控制器/
你好_controller.rb
def搜索
//调用show.js.erb
结束 app/views/hello/show.js.erb

基本上我想从javascript调用html文件(div标记)

关键是我不想在页面打开时执行任何操作,只想在点击show按钮时运行javascript

同一点-写入控制器

respond|to do |格式|
format.html{
}
format.js{呈现模板:'show',布局:false}
结束

我在show.js.erb中写道 警惕(“你好”)

不工作

类HelloControllerclass HelloController < ApplicationController
  def search
   respond_to do |format|
     format.js{ render template: 'show', layout: false }
   end
  end
end
def搜索 回应待办事项|格式| format.js{呈现模板:'show',布局:false} 结束 结束 结束
最简单的方法如下:

def search
  @var = Model.where(name: params[:search]) # will be available in search.js.erb
  respond_to :js # will try to render search.js.erb in views/hello/
end
您可以渲染自定义js文件:

def search
  # some code..
  respond_to :js { render 'show' }
end

在控制器中,将类似这样的代码放入应用程序中

respond_to do |format|
  format.js # actually means: if the client ask for js -> return file.js
end

您想为HTML请求或只是AJAX请求显示这一点吗?我需要在任何地方提到一些路径吗?