hello.js.erb:
$("#show_hosts").html("some text");
testQueuesController.rb:
class testQueuesController < ApplicationController
def index
@test_queues = testQueue.all
respond_to do |format|
format.html
format.json { render json: @test_queues }
end
end
end
视图中的相关部分:
<%= link_to "hello", { :controller => "kashmir_queues", :action => "hello" }, :remote => true %>
现在,这是有效的,但我真正想做的是,现在加载“一些文本”,但要加载另一个名为show_hosts.html.erb的视图,我该怎么办呢?
谢谢!
答案 0 :(得分:0)
如果我正确理解您的问题,您希望在ID为show_hosts.html.erb
的HTML代码中呈现名为show_hosts
的视图。
为了能够做到这一点,你需要为每个主机创建一个部分 - 比如_host.html.erb
,并在hello.js.erb
中写下以下内容:
$('#show_hosts').html(<%= render partial: 'host', collection: @hosts %>)
其中@hosts
是我假设你用于show_hosts.html.erb
中显示的主机集合的名称,但我必须承认我有点困惑,因为你使用{{1}在您的控制器中。
对于它的价值(如果我没记错),您还需要将@test_queues
添加到控制器以呈现format.js
模板。
答案 1 :(得分:0)
在你的控制器中添加名为hello的新动作
def hello
queue = KashmirQueue.find(params[:id])
@test_queues = testQueue.where(:host => queue.host)
end
将show.html.erb移动到像_show.html.erb
这样的部分然后在hello.js.erb中写
$("#show_hosts").html('#{escape_javascript(render "show.html.erb")}');