私がルートを持っていることを考えると。
root :to => 'pessoas#index'
post '/pessoas' => 'pessoas#create'
そして、私のビュー app/view/pessoas/ index.hamlには次のビュー コードがあります。(ここに送信すると pessoas#create に投稿されます)
= form_tag "/pessoas", :method => :post, :remote => true, :id => "participe" do
...
= button_tag "Sign up", :class => "envia"
そして、私のcreate.js.erbビューは.
$('#user-feedback').html('<%= @message %>');
コントローラ コードはモデルを保存するだけです。
def create
@pessoa = Pessoa.new(params[:cliente])
if @pessoa.save
@message = "Success"
else
@message = "Failure"
end
respond_to do |format|
format.js
end
end
次に、ルート パスに移動します。フォームに入力して [送信] をクリックします。次に、要素 p#user-feedback は変更されていません。なんで?
アプリのログで気付きました: リクエストは正しく行われ、jquery も実行されましたが、現在のビュー (インデックス) ではなく /pessoas の応答でレンダリングされます。
私に何ができる?それとも、これを忘れて $.ajax の方法でこれを作成する必要がありますか? ユーザーにフィードバックを提供する方法が必要です。