2011-03-28 194 views
0

我正在嘗試將Rails 2.3.9應用升級到Rails 3,並且我一個接一個地面臨問題。我爲Rails 2.3.9使用了自動完成插件,它工作正常。但現在在Rails 3.0中,而不是顯示文本框,它只是顯示需要生成的html。這裏是產生自動完成場升級到Rails 3.0

<table class="table_style"> 
<caption><b>Customer Details</b></caption> 
<tr> 
<td><label for="customer_investigator"><%= RB['investigator']%></label><label class="mandatory">*</label></td> 
<td><%= text_field_with_auto_complete "customer", :investigator, { :onblur=> "if(this.value=='') {this.value='last, first';this.style.color='#aaa';}",:onfocus=> "if(this.value=='last, first') {this.value='';this.style.color='#000';}"},{:skip_style => true, :url=>{:action=>'autocomplete_name'}, :with =>"'name='+element.value"} %></td> 
</tr> 
</table> 

現在,這是生成的html看起來像

"<input id="customer_investigator" name="customer[investigator]" onblur="if(this.value=='') {this.value='last, first';this.style.color='#aaa';}" onfocus="if(this.value=='last, first') {this.value='';this.style.color='#000';}" size="30" type="text" /><div class="auto_complete" id="customer_investigator_auto_complete"></div><script type="text/javascript"> 
//<![CDATA[ 
var customer_investigator_auto_completer = new Ajax.Autocompleter('customer_investigator', 'customer_investigator_auto_complete', '/accessions/autocomplete_name', {callback:function(element, value) { return 'name='+element.value }}) 
//]]> 
</script>" 

內容看起來好像沒什麼問題我的HTML代碼。但生成的html以引號開頭,因此而不是顯示文本框,它只是在窗體上顯示生成的html。它在Rails 2.3.9中工作得很好。有人可以幫忙嗎?

感謝

回答

1

嘗試的自動完成代碼之前使用原料

<%= raw(text_field_with_auto_complete "customer", :investigator, { :onblur=> "if(this.value=='') {this.value='last, first';this.style.color='#aaa';}",:onfocus=> "if(this.value=='last, first') {this.value='';this.style.color='#000';}"},{:skip_style => true, :url=>{:action=>'autocomplete_name'}, :with =>"'name='+element.value"}) %> 
0

我總是使用rails_upgrade寶石從梁2我的應用程序升級到軌道3 https://github.com/jm/rails_upgrade

正如你一個接一個地說出你面臨的問題,這個寶石可能可以幫助你在升級過程中。