2015-06-26 146 views
0

我有一個簡單的任務。用戶應該能夠在一種形式進入寬度高度並單擊窗體應生成請求(鏈接)等以下之後:
/find_area.json?width[]=:width&height[]=:height發送和處理.json請求(在Rails應用程序中)

應用應生成響應(面積=高度*寬度)並在頁面上動態顯示它。

所有的用戶操作都被保存了,所以它應該是POST請求。

我的問題是:

  1. 如何創建這個請求(從簡單的生成它的form_for)。
  2. 如何計算面積(我的意思是:))並給出迴應。

對不起,缺少代碼和信息。我會很高興快速簡單的回答。

+0

做你嘗試過的東西?在url中顯示鏈接...您需要使用GET請求而不使用ajax.But我的問題是,如果您的頁面應該動態更新以及ajax提交和頁面,那麼您將如何在頁面中顯示網址...... – Milind

+1

爲什麼你需要一個用於寬度和高度參數的數組嗎? –

+0

@Milind它必須是POST請求(爲了保存用戶操作)。 – MDD

回答

0

只爲你需要什麼用ajax做小總結: -

  1. 創建模式areamigrate表和form_for

    rails g model Area height:integer width:integer

    run rake db:migrate

    使用

    //view part <%= form_for(@area,:url=>"areas/find_area",:remote=>true) do |f |%> <%= f.text_field :width ,:placeholder=>"Enter width",:required=>"true"%> <%= f.text_field :height ,:placeholder=>"Enter height",:required=>"true"%>
    <button type="submit" data-remote="true"> Calculate Area</button>
    <%end%>

  2. routes.rb中添加路由處理張貼表格後提交使用AJAX

    match '/find_area', :to => 'areas#find_area'

  3. 控制器方法,得到PARAMS的值和計算面積

    //inside areas_controller.rb, def find_area width,height=params[:width],params[:height] @area=width*height respond_to do |format| if @area format.js else format.js { render :json => @area.errors.full_messages.join(' '), :status => 400 } end end end

  4. 渲染js.erb顯示彈出有關該地區/文本以及使用CSS

    內find_area.js.erb隱藏表單

    ##using any hidden div already present on the page $("#show_area").html("The area is <%= @area%>").show();

相關問題