2010-10-25 88 views
0

我想添加onchange處理程序來查看當前選擇哪個選項並將其放入文件中。 我該怎麼做?選擇表的onchange錯誤

<select id="subtable" name="subtable" size="20" style="width: 400px"> 
<%= options_from_collection_for_select(@hauses, 'id', 'timebuild', @hauses.first.id), {}, {:onchange => catch()}) %> 
</select> 

其中控制器是該

def index 
@hauses = Hauses.find(:all) 
end 

def catch 
@hs = Hauses.find(params[:hauses_id]) 
file = File.new("catch.txt","ab") 
file.puts(@hs) 
file.close 
end 

它顯示未定義的方法'抓」

謝謝你的任何指導

回答

0
  • 視圖不能調用的方法的錯誤控制器,這就是爲什麼他找不到方法catch
  • 您可以將該方法放入助手中,但這意味着此方法將返回將填充到onchange屬性中的Javascript代碼。
  • 如果你把{:onchange =>'catch()'}這會尋找Javascript方法叫做catch。

Onchange將在瀏覽器中執行,因此如果您想在用戶更改選擇字段的值時調用動作「catch」,那麼您必須創建一個AJAX調用。請參閱AJAX on Rails以幫助您入門。

附加地,onchange屬性必須包含在select-tag中,而不是選項中。