#ruby-on-rails #ajax
#ruby-on-rails #ajax
Вопрос:
Я разрабатываю проект rails, и мне нужно загрузить результаты поиска по конкретному div. Может кто-нибудь объяснить мне, как это сделать на rails 2.3.8?
Это моя модель событий
create_table "events", :force => true do |t|
t.string "name"
t.date "start_at"
t.date "end_at"
t.datetime "created_at"
t.datetime "updated_at"
t.string "trainer_id"
t.string "venue_id"
t.string "description"
t.boolean "holy"
t.integer "nxt"
t.string "country_id"
end
Это моя форма поиска
<% form_tag "/events/find_trainer" do %>
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => true}) %>
<%= submit_tag "search" %>
Могут ли некоторые эксперты поделиться своими идеями по этому поводу?
Ответ №1:
Вы можете сделать это без формы, используя observe_field
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => true}) %>
<%= observe_field "event_trainer_id",
:url => {:controller=> :events, :action => :find_trainer},
:on=>"change",
:with => "'value=' document.getElementById('event_trainer_id').value"
%>
<div id="some_id"></div>
Код контроллера
def find_trainer
#Get your Search Results in the @search_results
#you get search value in params[:value]
render :update do |page|
page.replace_html 'some_id' , :partial => "some_partial", :object => [@search_results] #now you can use object @search_results in events/_some_partial.html.erb
end
end