в моем приложении я хочу показать пользователю несколько сообщений, но сообщения имеют город, что мне нужно делать, чтобы показывать сообщения из выбранного города, выбрать какой-либо город и отображать все сообщения выбранного город? файл сообщений post.rbКак пользовательская коллекция выбрать в поле зрения
class Post < ActiveRecord::Base
NORMAL = 1
ACTIVE = 2
COMPLETED = 3
STATUSES = {
NORMAL => 'unpublished',
ACTIVE => 'published',
COMPLETED => 'deleted'
}
def status_name
STATUSES[status]
end
belongs_to :user
belongs_to :category
belongs_to :city
default_scope -> { order('created_at DESC') }
end
файл Posts_controller.rb
class PostsController < ApplicationController
def index
@category = Category.find(params[:category_id])
@feed_items = @category.posts.where(status: params[:status], city_id: params[:city_id]).paginate(page: params[:page])
end
end
файл/index.html.erb
<% provide(:title, 'all posts') %>
<div class="container">
<div class="row post_feed">
<h1><%= @category.name %></h1>
<div class="col-md-3 col-lg-3" style="padding:0;">
<ul class="list-group">
<li class="list-group-item"><%= link_to 'all categories', all_post_path %> </li>
<% Category.all.each do |category| %>
<li class="list-group-item"><%= link_to category.name, category_posts_path(category) %>
</li>
<% end %>
</ul>
</div>
<div class="col-lg-8">
<div class="all_post_feed">
<ul>
<div class= "city_select">
<%= collection_select(:post, :city_ids, City.all, :id, :name) %>
</div>
<%= render 'categories/feed' %>
</ul>
</div>
</div>
</div>
</div>
файл категории/_feed.html.erb
<% if @feed_items.any? %>
<%= render partial: 'categories/feed_item', collection: @feed_items %>
<%= will_paginate @feed_items %>
<% else %>
<% end %>
file categories/_feed_item.html.erb
<li>
<div class="row post_name" >
<div class="col-md-8 ">
<h3>
<%= link_to (truncate feed_item.name,:length => 35), feed_item %>
</h3>
</div>
<div class="col-md-4 preview-small">
<div class="feed_price pull-right">
<% if feed_item.price.to_f == 0 %>
price
<% else %>
<%= number_to_currency feed_item.price %>
<% end %>
</div>
</div>
</div>
<div class="row post_user">
<div class="col-md-5">
<div class="row">
<div class="col-md-2 user_avatar">
<%= avatar_for feed_item.user, :size => "50x50" %>
</div>
<div class="col-md-5">
<%= link_to feed_item.user.name, (feed_item.user) %><br>
<% if feed_item.user.reviews.count.to_f == 0 %>
<% else %>
<%= (feed_item.user.reviews.count) %>
<% end %>
</div>
</div>
</div>
<div class="col-md-7 adress">
<span class="pull-right">
<%= feed_item.status_name %>
<%= l feed_item.date, format: :long %> г.</span><br><span class="pull-right">
<%= (truncate feed_item.adress1,:length => 90) %></span><br>
<span class="pull-right">published <%= time_ago_in_words(feed_item.created_at) %> назад.
</span>
</div>
</div>
</li>
wh ан пользователь выберите город рельсы показать ему все сообщения от выбранного города
<%= collection_select(:post, :city_ids, City.all, :id, :name) %>
, что ваш текущий результат? У вас есть конкретная проблема? Непонятно, что вы просите. – Beartech
Спасибо, теперь все работает, но рельсы показывают все сообщения, из всех городов, я хочу показывать для сообщений пользователей из выбранного города, выбрать город и рельсы, показать ему сообщения из выбранного города) – user3089327
Итак, вы хотите, чтобы город выбирал вниз заставить страницу показывать только сообщения из этого города? Вероятно, вам нужен какой-то вызов 'submit' или AJAX, чтобы показать фид только постов для выбранного города. Сейчас похоже, что вы показываете страницу с выпадающим меню и фидом, но не можете отправить город или javascript для обновления 'div' для фидов. – Beartech