2010-10-25 87 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中,而不是选项中。