看了几篇关于 ROR 中 Ajax 的文章后,我仍然对如何使用 Ajax 感到困惑!
在我的项目中有一个main/index.html
and 。main_controller
我想实现如下所述的功能:
单击链接中的链接后index.html
,RSS 内容将显示在索引中。我已经通过跳转到另一个网页来实现该功能。但是我不知道如何使用 Ajax ......
指数
<h1>Listing Jobs</h1>
<table>
<tr>
<th>Source</th>
<th></th>
</tr>
<% @jobs.each do |job| %>
<tr>
<td><%= job.source %></td>
<td>
<%= link_to 'Show', #:controller=>'main', :action=>'show',
:id=>job.id,:remote=>true, "data-type"=>:json, :class=>'updateJob'%>
</td>
</tr>
<% end %>
</table>
<script type="text/javascript" charset="utf-8">
$(function(){
# $('#'+job.id).bind("click",function(){
# $('#showJob').append('Hi')
# })
$('#'+job.id).bind("ajax:success",function(data, status, xhr){
("<h1>hello</h1>").appendTo("#showJob")
})
})
</script>
显示.html
<div id="showJob">
</div>
<table>
<tr>
<th>Source</th>
<th>Link</th>
</tr>
<% @feed.items.each do |item| %>
<tr>
<th><%= item.title %></th>
<th><%= item.link %></th>
</tr>
<% end %>
</table>
主控制器
require 'rss'
require 'rss/1.0'
require 'rss/2.0'
require 'open-uri'
class MainController < ApplicationController
#get /jobs
def index
@jobs=Job.all
respond_to do |format|
format.html # index.html.erb
format.json {render:json=>@jobs}
end
end
def welcome
@num_sources =Job.count
end
def show
job=Job.find(params[:id])
url=job.url
open(url) do |rss|
@feed = RSS::Parser.parse(rss)
end
respond_to do |format|
# format.html do
# render :partial=>'main/show'
# end
format.json {render :json=>@feed}
end
end
end