シンプルなテキストエリアボックス、「ページング」(メッセージの送信先) を決定するための選択、および送信ボタンを備えた「ページング」インターフェイスを持つアプリを構築しています。
ページを送信すると、小さな div にメッセージと結果 (成功、失敗など) が表示されるように、Ajax 機能を使用してこれを構築したいと思います。
私のコントローラーは、index、new、create アクションを持つという点で単純です。create アクションは、ページにメッセージを投稿するだけでなく、actionmailer をトリガーして、フォーム選択で選択された個人に基づいてページを送信する必要があります。
私が抱えている問題は、ビュー コードと jquery にあると思います。私は新しいので、それがどのように機能するかを理解しようとすると、少し混乱します。
このようなことができる 1 ページの投稿インターフェイスの例を教えてもらえますか? これまでのところ、私のコードは正しいように見えますが、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 %>