#jquery #ruby-on-rails #ajax
#jquery #ruby-on-rails #ajax
Вопрос:
Я хочу загрузить модальное диалоговое окно, нажав отправить тег. но когда я нажимаю на кнопку, он напрямую переходит на страницу, не переходя к файлу rjs, и не отображается частично. ниже приведен мой код.
<span style="text-align: right">
<% form_tag "/calendar/dia_cal_view" do %>
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => true}) %>
<%= submit_tag "search" %>
<%end%>
</span>
код контроллера:
def dia_cal_view
@month = (params[:month] || (Time.zone || Time).now.month).to_i
@year = (params[:year] || (Time.zone || Time).now.year).to_i
@shown_month = Date.civil(@year, @month)
@trainers=Trainer.all
@first_day_of_week = 1
if session[:dia_Serach].nil?
if (defined? (params[:event][:trainer_id]))
session[:dia_Serach]=(params[:event][:trainer_id])
#@@id=(params[:event][:trainer_id])
@event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week, :conditions=>["trainer_id = ?",session[:dia_Serach]])
else
@event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week)
end
else
@event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week, :conditions=>["trainer_id = ?",session[:dia_Serach]])
end
end
dia_cal_view.js.rjs
page.replace_html 'search_result', :partial => 'cal_view'
page<< "$j ('#search_result_dialog').dialog({
title: 'calendar',
modal: true,
width: 500,
height: 500,
close: function(event, ui) { $j ('#search_result_dialog').dialog('destroy') }
});"
_cal_view.html.erb
<%= stylesheet_link_tag "event_calendar" %>
<%= event_calendar %>
Проблема в том, что файл rjs не работал. Он не попал в файл rjs. что я должен для этого сделать? пожалуйста, помогите мне..
Ответ №1:
прежде всего, ваша форма отправляется как html, а не как запрос rjs. Сначала вам нужно изменить это на запрос rjs, измените эту строку
<% form_tag "/calendar/dia_cal_view" do %>
использовать
remote_form_tag
или вариант
удаленный = true
в зависимости от вашей версии rails
Тогда это должно сработать
Комментарии:
1. Я использую rails 2.3.8 и добавляю remote_form_tag. но тогда он покажет внутреннюю ошибку сервера 500.