У меня есть приложение Rails, которое показывает список ресторанов с разными параметрами. Я пытаюсь добавить фильтр через флажок, чтобы, если пользователь проверяет флажок, в представлении отображаются только те сообщения, где рестораны оцениваются Zagat.Почему этот флажок не подает данные? (Rails)
Мой код ниже. Почему он не работает?
ПОСТЫ индексный файл (index.html.erb)
<script type="javascript">
function sendData() {
$.post("index",{'zagat_status':$('#zagat_status'.val("")})
.done(function(data) {
alert('Success!');
});
}
$(document).ready(function() {
$('#zagat_status').change(function() {
sendData();
});
});
</script>
<label> Zagat<dd>rated</dd><input type="checkbox" name="zagat_status" value="Yes">
</label>
ПОСТЫ УПРАВЛЕНИЯ
class PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
# GET /posts
# GET /posts.json
def index
@posts = Post.all
if params[:search]
@posts = @posts.search(params[:search]).order("created_at DESC")
end
if params[:zagat_status].present?
@posts = @posts.zagat_status(params[:zagat_status]).order("created_at DESC")
end
end
ПОСТЫ МОДЕЛЬ
scope :zagat_status, -> (zagat_status) { where zagat_status: zagat_status }
В каком виде ваш код не работает? (Например, вызван ли вызов Ajax или нет? Получает ли ваш контроллер правильные параметры или нет?). Кроме того, ваш флажок не имеет идентификатора zagat_status, который, как кажется, предполагается в остальной части вашего кода. –
Я попытался добавить id из zagat_status, все еще не работает. когда я смотрю в журнал rails, я не вижу ничего, подтверждающее, что флажок был проверен. как проверить, выполняется ли вызов ajax или нет? – hikmatyar
У Chrome есть вкладка сетевого инспектора –