Rails和Ajax入门

时间:2012-06-28 18:01:31

标签: ajax ruby-on-rails-3 jquery actionmailer

我正在构建一个具有“分页”界面的应用程序,该界面有一个简单的文本区域框,一个用于确定我应该“分页”(发送消息)和提交按钮的选项。

我想用Ajax功能构建它,这样当我提交页面时,一个小div显示消息和结果(成功,失败等)。

我的控制器很简单,因为它有一个索引,新的,创建动作。创建操作应该在页面上发布消息,并触发动作管理器根据表单选择中选择的个人发送页面。

我想我遇到的问题是视图代码和jquery。因为我是新手,试着理解它是如何工作的让我有点困惑。

有人可以向我提供一个单页帖子界面的例子,可以做这样的事吗?到目前为止看起来我的代码是正确的,但我错过了jquery的东西以及剩下的魔法。

这是我到目前为止所拥有的:

paging_controller
class PagingController < ApplicationController

  def index
    @pages = Paging.all
  end


  def new
     @page = Paging.new
  end

  def show
    @page = Paging.find(params[:id])

    respond_with @page
  end

  def create
      @page = Paging.new(params[:page])

        if @page.valid?
          PagingMailer.new_message(@page).deliver
          redirect_to calls_path, notice: "Call was successfully created."
        else
          flash.now.alert = "Please fill all fields."
          render :new
        end
      end

end

index.html.erb
<h2>Paging Interface</h2>


    <div class="form">
    <%= render 'form' %>
    </div>
    <div class="page">
    <%= render 'page'%>
    </div>

_form.html.erb
<%= form_for(@page, :remote => true) do |f| %>

  <% end %>

  <div class="field">
    <%= f.text_area :message %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

_page.html.erb

<%= content_tag_for(:li, page) do %>
  <p><%= page.body %></p>
  <span class="age">Posted at <%= time_ago_in_words(page.created_at) %> ago.
 </span>
<% end %>