Как использовать поле наблюдения в диалоговом окне модели JQuery на рельсах 2.3.8? - PullRequest
4 голосов
/ 05 октября 2011

Я разрабатываю проект на рельсах 2.3.8, и мне нужно использовать поле наблюдения_ в диалоговом окне модели, но у меня это не сработало.Можно ли использовать «поле наблюдения» в диалоговом окне модели?Может кто-нибудь объяснить мне, как использовать это в диалоговом окне модели?Вот как я использую наблюдение в поле

<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => true}) %>
<%= link_to_remote 'Show calendar', :url => {:controller => 'calendar', :action => 'dynamicTrainer'} %>

<%= observe_field 'event',
:url => {:controller => 'calendar', :action=> 'dynamicTr'},
:with => "'mypara=' + escape(value)" %> 

Это метод dynamicTr в контроллере календаря.

def dynamicTr
 if (defined? (params[:trainer_id]))
     session[:my123] = 'defined'
 else
     session[:my123] = 'not'
 end
end



 def dynamicTrainer




session[:mySerach]=params[:mypara]
@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[:mySerach].nil?
        if (defined? (params[:mypara]))
            session[:mySerach]=(params[:mypara])

            #@@id=(params[:event][:trainer_id])
            @event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week, :conditions=>["trainer_id = ?",session[:mySerach]])          
        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[:mySerach]])          
    end     
end

А это мой файл dynamicTrainer.js.rjs

page.replace_html 'show_cal', :partial => 'dynamicTr'

page<< "$j ('#show_cal_dialog').dialog({
    title: 'calendar',
    modal: true,
    width: 500,
   height: 500,
    close: function(event, ui) { $j ('#show_cal_dialog').dialog('destroy') }

});"

Это частичный код dynamicTr

<%= stylesheet_link_tag "event_calendar" %>
<%= event_calendar%>
<%= session[:my123]%>

Проблема в том, что он показывает календарь, но не печатает значения сеанса.Разве я не могу использовать поле наблюдения в диалоговом окне модели?Пожалуйста, может кто-нибудь объяснить мне проблему здесь.

1 Ответ

4 голосов
/ 13 октября 2011

Я думаю, что есть проблема в вашей области наблюдения.

использовать идентификатор поля collection_select в поле наблюдения как 'event_trainer_id'

<%= observe_field 'event_trainer_id,
:url => {:controller => 'calendar', :action=> 'dynamicTr'},
:with => "'mypara=' + escape(value)" %> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...