如何在rails 2.3.8上的JQuery模式对话框中使用“观察字段”?

时间:2011-10-05 11:19:45

标签: ruby-on-rails events

我正在开发rails 2.3.8上的项目,我需要在模型对话框中使用observe_field,但它对我不起作用。是否可以在模型对话框中使用“observe_field”?有人可以解释一下如何在模型对话框中使用它吗? 这是我如何使用观察文件

<%= 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]%>

问题是它显示日历但不打印会话值。我不能在模型对话框中使用observe_field吗?请有人在这里解释我的问题。

1 个答案:

答案 0 :(得分:4)

我认为您的观察领域存在问题。

将observe字段中的collection_select字段的id用作'event_trainer_id'

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