Помогите создать выпадающий список и другие элементы для страницы часто задаваемых вопросов с Ruby on Rails - PullRequest
0 голосов
/ 11 мая 2010

Я новичок в рельсах, и я пытаюсь сделать страницу помощи, которая просто перечисляет вопросы и ответы. В настоящее время у меня есть что-то очень простое, как это:

<% @helps.each do |help| %>
<%=h help.category %>
<%=h help.question %>
<%=h help.answer %>
<% end %>

Вместе с каждым вопросом и ответом есть категория, к которой они относятся. Как создать раскрывающийся список, который позволил бы пользователям перечислять только вопросы, относящиеся только к одной категории?

Во-вторых, я хотел бы создать список всех вопросов в верхней части страницы. Вопросы на самом деле являются ссылками, которые при нажатии приводят вас к нижней части страницы, где находятся вопрос / ответ. или при нажатии на ссылку она расширяется, предоставляя ответ под ней, аналогично странице справки Facebook. Я думаю, что это будет включать в себя AJAX или Java. Было бы здорово, если бы кто-то указал мне правильное направление.

Ответы [ 2 ]

1 голос
/ 12 мая 2010

Вы можете использовать что-то вроде jquery для переключения видимости различных разделов - поместите каждую категорию в div, а затем заставьте их скрыть с помощью jquery. Вы также можете использовать некоторые плагины jquery, такие как http://flowplayer.org/tools/demos/tabs/accordion.html для эффектов, в данном случае аккордеон, но существует и много других подобных эффектов.

Мой первый поиск в Google найден: http://jquerystyle.com/2009/04/21/jquery-faq-plugin

0 голосов
/ 12 мая 2010

Если вы хотите сделать это «статически», то есть когда пользователь выбирает категорию из выпадающего списка и нажимает «Фильтр», то браузер отправляет запрос приложению Rails на вопросы только в этой категории, следующее поможет вам начать:

# in config/routes.rb
map.resources :helps

# in app/models/help.rb
class Help
  named_scope :in_category, lambda { |category| { :conditions => { :category => category } } }
  def self.categories
    find(:all, :select => 'distinct category', :order => 'category').sort
  end
end

# in app/controllers/helps_controller.rb
class HelpsController < ApplicationController::Base
  def index
    @helps = if params[:category]
      Help.in_category(params[:category])
    else
      Help.all
    end
  end
end

# in app/views/helps/index.html.erb:
<% form_tag(helps_path) do %>
  <%= select_tag(:category, options_for_select(Help.categories, params[:category])) -%>
  <%= submit_tag('Filter') -%>
<% end %>
<% @helps.each do |help| %>
  <div class="help <%= help.category -%>">
    <%=h help.category %>
    <%=h help.question %>
    <%=h help.answer %>
  </div>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...