前提・実現したいこと
jqueryで非同期通信を使うときの質問です。
自分はいつも、以下のような方法で投稿内容の保存と表示をしています。
以下は自分の簡単なメモの投稿と表示をするコードの一部です。
投稿画面とメモの表示
html
1<%= form_for @memo, remote: true do |f| %> 2 <%= f.text_field :text %> 3 <%= f.submit '投稿' %> 4<% end %> 5<ul> 6 <%= render @memos %> 7</ul>
変更後のメモのレコードを挿入
javascript
1$("#memo_text").val(""); // 入力フォームを空欄にする処理 2$("ul").html("<%= j(render @memos) %>");
メモのテキスト表示の部分テンプレート
html
1<li> 2 <%= memo.text %> 3</li>
コントローラの記述
ruby
1class MemosController < ApplicationController 2 def index 3 @memos = Memo.all 4 @memo = Memo.new 5 end 6 7 def create 8 Memo.create(memo_params) 9 @memos = Memo.all 10 end 11 12 def destroy 13 Memo.find(params[:id]).destroy 14 @memos = Memo.all 15 end 16 17 private 18 def memo_params 19 params.require(:memo).permit(:text) 20 end 21end
しかし、これだと部分テンプレートのファイルが勝手に「memos/_memo.html.erb」になってしまい、自分で指定することができず、困っています。
部分テンプレートを指定できかつ、非同期通信ができるコードの書き方のアドバイスをください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー