使用observe时,RoR设置文本字段的默认值

时间:2010-09-03 22:03:54

标签: ruby-on-rails

我正在尝试为使用observe方法的搜索设置文本字段的默认值。这就是我得到的东西。

<% form_tag('javascript:void(0)') do %>
    <%= text_field_tag 'phrase', nil, {:onfocus => "$('results').show();", :onblur => "$('results').hide();"} %>
    <%= observe_field :phrase,
      :frequency => 0.5,  
      :update => 'results',
      :url => {:controller => :profiles, :action => 'search', :only_path => false },
      :with => "'phrase=' + encodeURIComponent(value)" %>
 <% end %>

这很好用,但显然值是零。

现在,如果我像这样添加值:

<% form_tag('javascript:void(0)') do %>
    <%= text_field_tag 'phrase', :value => 'test', {:onfocus => "$('results').show();", :onblur => "$('results').hide();"} %>
    <%= observe_field :phrase,
      :frequency => 0.5,  
      :update => 'results',
      :url => {:controller => :profiles, :action => 'search', :only_path => false },
      :with => "'phrase=' + encodeURIComponent(value)" %>
 <% end %>

抛出异常。

有关如何获取此文本字段的默认值的任何想法吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

请勿使用:value => 'test',只需使用'test'

<%= text_field_tag 'phrase', 'test' %>

您尝试使用的格式是text_field助手,通常来自模型,text_field_tag通常不是来自模型。