Я новичок, использующий AJAX, и теперь я пытаюсь работать с группой выделенных ящиков, чтобы, когда пользователь выбирает значение из во-первых, второй обновляет свои значения. Я пытаюсь использовать AJAX, JQuery и ROR, но пока я не могу извлечь значение из первого поля и передать его контроллеру, чтобы отфильтровать результаты второго.Передать значение выбора контроллеру без обновления страницы (AJAX, RAILS, JS)
Это мой код для index.html.erb
<%= form_tag(posts_path, remote: true, :method => 'get', class: "forma") do %>
<%= select_tag("box", options_from_collection_for_select(@posts, :content, :content), :prompt => "Select") %>
<p>
<%= select_tag("nbox", options_from_collection_for_select(@listposts, :content, :id), :prompt => "Select") %>
<p>
<%= submit_tag "Show", class: "btn btn-info" %>
<% end %>
Это мой index.js.erb
$(document).ready(function() {
$(".btn").on("click", function() {
$('.table').fadeToggle();
})
$('#box').change(function(){
$.ajax({
type: 'POST',
url: '/jess/rails/dummy/app/controllers/posts_controller',
data: {'filter' : $(this).val() },
success: function(data){
}
})
$('#nbox').fadeIn();
$('.btn').fadeIn();
})
})
Это мой контроллер
class PostsController < ApplicationController
respond_to :html, :js
def new
@post = Post.new
end
def create
@posts = Post.all
@post = Post.new(post_params)
if @post.save
flash.now[:notice] = "YEAH"
respond_to do |format|
format.html {redirect_to @post.content}
format.js
end
else
render "/"
end
end
def show
@post = Post.find(params[:id])
end
def index
@posts = Post.all
@listposts = Post.where('content LIKE ?', params[:box])
end
def next
@listposts = Post.where('content LIKE ?', params[:box])
end
private
def post_params
params.fetch(:post, {}).permit(:content)
end
end
Я думаю, что я «Я делаю это неправильно с частью AJAX в js.erb, но я изменил его так много раз, что больше не знаю. Ваша помощь будет так высоко оценена!