2011-04-04 15 views
0

私は、バックエンドで計算を行い、その結果をAjax経由でフロントエンドに表示するアプリケーションを持っています。私はActiveRecordを使用していません。js.erbテンプレートとAjax in Rails 3の使い方は?

JavaScriptコードが実行される代わりに表示されます。私が変換ボタンを押した後、Webrickは次のように言います:

Started POST "/site/convert.js" for <ip address> at 2011-04-05 01:37:09 +0300 
    Processing by SiteController#convert as JS 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"K9De9/J5bsnOxqLdmvl02sOVgmU3c4gEZ/n7DBwJdrw=", "radix"=>"10", "number"=>"2", "commit"=>"Convert"} 
Rendered site/convert.js.erb (0.5ms) 
Completed 200 OK in 28ms (Views: 22.9ms) 

なぜJavaScriptコードが実行されないのですか?

site_controller.rb:

class SiteController < ApplicationController 
    def index 
    end 

    def convert 
    number = params[:number] 
    from = params[:radix] 
    @decimal = Converter::convert(number, from.to_i, 10) 
    @hexadecimal = Converter::convert(number, from.to_i, 16) 
    @binary = Converter::convert(number, from.to_i, 2) 
    end 

end 

サイト/ index.html.erb:

<%= form_tag site_convert_path(:format => :js), :id => 'conversion', :remote => true do %> 
    <%= radio_button_tag 'radix', 10, true %> Decimal 
    <%= radio_button_tag 'radix', 16 %> Hexadecimal 
    <%= radio_button_tag 'radix', 2 %> Binary 
    <%= number_field_tag 'number', '', :size => '20', :min => 0 %> 
    <%= submit_tag 'Convert' %> 
<% end %> 

<button id="convert" type="button">Convert</button> 

<table> 
    <thead>Conversions</thead> 
    <tr> 
    <th>Decimal</th> 
    <th>Hexadecimal</th> 
    <th>Binary</th> 
    </tr> 
    <tr> 
    <td id="decimal_converted"></td> 
    <td id="hexadecimal_converted"></td> 
    <td id="binary_converted"></td> 
    </tr> 

</table> 

サイト/ convert.js.erb:

$('#decimal_converted').text("<%= @decimal %>"); 
$('#hexadecimal_converted').text("<%= @hexadecimal %>"); 
$('#binary_converted').text("<%= @binary %>"); 

routes.rbを:

Conversions::Application.routes.draw do 
    root :to => 'site#index' 
    post 'site/convert' 
end 

答えて

2

問題が解決しました。 RailsのjQueryのアダプタ、すなわちrails.js、jQueryの前にロードに問題がありました、レイアウトのように次の変更は、問題を修正しました:

に変更
<%= javascript_include_tag ['rails', 'jquery'] %> 

<%= javascript_include_tag ['jquery', 'rails'] %> 
関連する問題