まあ、RailsはフツウにAjaxにも対応してるよー。
app/assets/javascripts
<img id="logo" src="/assets/rails.png" /> <script type="text/javascript"> $('#logo').click(function () { alert("クリック!フェードアウトするよ!") $('#logo').fadeOut(3000); }); </script>
<div>現在時刻:<%= Time.now %></div> <div id="result">現在時刻:<%= Time.now%></div> <%= link_to '更新', {:action => 'update_time'}, :remote => true %>
def update_time @time = Time.now.to_s end
$('#result').html( "<%= escape_javascript(render :partial => 'ajax_result' ) %>" );
現在時刻:<%= @time %>
<%= form_tag({ :action => 'result_book' }, { :remote => true} ) do %> <%= select_tag('publish', options_from_collection_for_select(@books,:publish, :publish, '日経BP社') )%> <%= submit_tag '検索'%> <% end %> <div id="result"></div>
def search_book @books = Book.select('DISTINCT publish') end def result_book @books = Book.where(:publish => params[:publish]) end
$('#result').html( "<%= escape_javascript(render :partial => 'search_result' ) %>" );
<ul> <% @books.each do |book| %> <li><%= book.title %>(ISBN:<%= book.isbn %>)</li> <% end %> </ul>
$(function() { $('*') .ajaxStart (function() { $('#progress').html('通信中…') } ) .ajaxComplete (function() { $('#progress').html('') } ); });
<span id="progress"></span>
<%= form_tag({ :action => 'search_yahoo' }, { :remote => true} ) do %> <%= text_field_tag( :keyword, '', {:size => 30 })%> <%= submit_tag '検索'%> <span id="progress"></span> <% end %> <div id="result"></div>
def search_yahoo Net::HTTP.start('search.yahooapis.jp') do |http| response = http.get('/WebSearchService/V2/webSearch?appid=wings-project&query=' + ERB::Util.url_encode(params[:keyword])) @body = Hash.from_xml(response.body) end end
$('#result').html( "<%= escape_javascript(render :partial => 'yahoo_result' ) %>" );
<ul> <% @body['ResultSet']['Result'].each do |result| %> <li><%= result['Title'] %>(URL:<%= result['Url'] %>)</li> <% end %> </ul>
Service unavailable.Too many users
respond_to do |format| format.js format.xml { render xml: response.body } format.json { render json: Hash.from_xml(response.body).to_json } end
match 'hello/search_yahoo(.:format)'