AdilA
@AdilA
Нравится кодить, изучаю go c echo

Как в rails сделать фильтры выбора?

В общем уже часа 4 сижу не могу допереть как сделать список выбора для пользователей...
Суть: Есть посты со статусом и городами и категориями, сейчас в index.html.erb отображаются все посты по всем городам и статусам, а необходимо сделать чтобы можно было выбрать посты по городу и по статусу. Например в выпадающем списке или чеб боксом можно было бы выбрать город и статус поста.
и как можно чтобы юзер по умолчанию видел посты города выбарнного при регистрации?
Модель Post
class Post < ActiveRecord::Base

	NORMAL    = 1
  ACTIVE    = 2
  COMPLETED = 3

	STATUSES = {
    NORMAL    => 'не опубликовано',
    ACTIVE    => 'опубликовано',
    COMPLETED => 'помечено для удаления'
  }

  def status_name
    STATUSES[status]
  end

  belongs_to :user
  belongs_to :category
  belongs_to :city
  default_scope -> { order('created_at DESC') }

end

class PostsController < ApplicationController

def index
		@category = Category.find(params[:category_id])
		@feed_items = @category.posts.paginate(page: params[:page])
	end
end

posts/index.html.erb

<h1><%= @category.name %></h1>
<%= link_to 'Все категории', all_post_path %>
<% Category.all.each do |category| %>
<%= link_to category.name, category_posts_path(category) %> 
<% end %>

<%= render 'categories/feed' %>


categories/_feed.html.erb

<% if @feed_items.any? %>

    <%= render partial: 'categories/feed_item', collection: @feed_items %>

  <%= will_paginate @feed_items %>
<% end %>


categories/feed_item.html.erb
<%= link_to (truncate feed_item.name,:length => 35),	feed_item %>
  	
<%= link_to feed_item.user.name,	(feed_item.user) %>

или подскажите в каком направлении гуглить... а то даже как искать не понятно
Юзаю rails 4
ruby 2
  • Вопрос задан
  • 3886 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanKiLL
@FanKiLL
Сделайте через collection_select отправляйте на сервер по клику кнопки или ajax как удобнее.

Добавьте в запрос выбор юзера
@feed_items = @category.posts.where(status: params[то что придёт от юзера]).paginate(page: params[:page])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы