У меня есть приложение Rails, которое показывает рекомендации ресторана рядом с пользователем.Форма не отправлена должным образом
Есть страница Posts#index
, в которой показаны все Restaurant
s, и у каждого Restaurant
есть другие параметры. Меня больше всего интересует Zagat_status
.
Когда пользователь нажимает флажок для Zagat_status
, я хочу, чтобы обновить Posts#index
вид так, что он показывает только Restaurant
сек, где Params zagat_status = "Yes"
.
Мои файлы находятся ниже. Я подозреваю, что проблема в моем файле индекса. Что мне не хватает/как я могу заставить это работать?
просмотров/сообщений/index.html.erb
<div class="main-wrap">
<div class="map-side-bar">
<div class="search-filter">
<form>
<span>Accolades</span>
<div class="accolades-panel">
<label>
Zagat<dd>rated</dd><input type="checkbox" name="zagat_status" value="Yes">
</label>
</div>
</form>
</div>
</div>
</div>
модели/post.rb
class Post < ActiveRecord::Base
scope :zagat_status, -> (zagat_status) { where zagat_status: zagat_status }
validates :name, presence: true
validates :city, presence: true
validates :address, presence: true
def self.search(query)
where("name like ? OR city like ? OR address like ?", "%#{query}%", "%#{query}%", "%#{query}%")
end
end
Контроллеры/posts_controller.rb
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
как вы подачи ваша форма? Я имею в виду, что у вас нет кнопки отправки. –
Я не хочу иметь кнопку отправки, я просто хочу, чтобы пользователь, щелкнув этот флажок, обновил представление. как вы можете сказать, я довольно новичок в рельсах, поэтому я, вероятно, пропустил нечто важное и очевидное. – hikmatyar
, так что вам нужно будет связать событие на флажке и сделать ajax-вызов со значением –