Поскольку я не получил ожидаемый ответ на моем last question я постараюсь упростить и сузить вопрос:RJS: Ajaxified select_tag
Как я могу построить выпадающее-меню, которое использует AJAX (не представить -button), чтобы вызвать действие show определенного контроллера?
следующие вещи Дано:
Model-Ассоциация является Категории HABTM Проекты, поэтому-выпадающее меню состоит из имен всех категорий.
вид частичного, где выпадающее меню должно быть реализовано. Ниже выпадающего меню находится список проектов, которые должны меняться в зависимости от выбора, сделанного в выпадающем меню:
<!-- placeholder for AJAX dropdown menu -->
<!-- list of projects related to categories chosen by the select tag -->
<ul class="projects">
<% @projects.each do |_project| %>
<li>
<%= link_to(_project.name, _project) %>
</li>
<% end %>
</ul>
Категории контроллер с шоу-действия, которые следует назвать:
class CategoriesController < ApplicationController
def show
# params[:id] should be the choice the user made in the dropdown menu
@category = Category.find(params[:id])
@projects = @category.projects.find(:all)
respond_to do |format|
format.html # show.html.erb
format.js # needed for ajax response?
end
end
def index
@projects = Category.find(params[:id]).projects.find(:all)
@category = @project.categories.first
respond_to do |format|
format.html # index.html.erb
end
end
end
маршрут назвать шоу-действия в контроллере Категории:
category GET /categories/:id {:controller=>"categories", :action=>"show"}
Как бы вы это реализовали? Любая помощь очень приветствуется!
Nice один! Спасибо, я никогда не думал о том, чтобы создать традиционный html-вызов, используя javascript. Какая ценность будет иметь: категория и что будет: id? Разве это не имело бы такой же ценности? – Javier
Это не нужно, но тогда вы должны использовать select_tag, я обновил свой ответ, чтобы показать, как это сделать. – Chap