ruby라기보다 JS, jquery이다.
<div id="id명B">
<button onclick="변수명A(매개변수)"></button>
</div>
<script>
function 변수명A(매개변수){
$.ajax({
method: "POST",
url: "/컨트롤러/액션명C",
data: { params로 넘길 값 }
})
.done(function( ajax로 받은 데이터 ) {
$("#id명 B").html(ajax로 받은 데이터); // Jquery
// document.querySelector("#id명B").innerHtml = ajax로 받은 데이터
});
}
</script>
def 액션명C
---실행할 구문---
render :layout => false
end
views/friend/add.rhtml
<div id="add_btn_<%= friend.id %>">
<button onclick="ajaxTest(<%= friend.id %>, 'add_btn_<%= friend.id%>')">
</button>
</div>
<script>
function ajaxTest( id, replace_id ){
$.ajax({
method: "POST",
url: "/friend/add_friend_ajax",
data: { id : id } //params[:id] = id가 된다.
})
.done(function( msg ) {
console.log( "Data Saved: " + msg );
$("#" + replace_id).html(msg);
});
}
</script>
controllers/friend_controller.rb
def add_friend_ajax
add_friend( true )
@added_user = User.find params[:id]
render :layout => false
end
views/friend/add_friend_ajax.rhtml
<%= @added_user.name %>추가됨.
add_friend_ajax는 url에 입력된 주소와 위치/파일명이 동일해야한다.
$("css선택자").val()