Javascript 如何在Rails中进行更改操作?
我想用Javascript 如何在Rails中进行更改操作?,javascript,ruby-on-rails,ajax,Javascript,Ruby On Rails,Ajax,我想用link\u-to\u-remote方法传递collection\u-select一个值。当我这样做时,我得到了一个内部服务器错误。我使用的是Rails 2.3.8。我的代码: <%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => 'Select a Trainer'}, {:onchange=> "#{link_to_remote(:url => {:co
link\u-to\u-remote
方法传递collection\u-select
一个值。当我这样做时,我得到了一个内部服务器错误。我使用的是Rails 2.3.8。我的代码:
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => 'Select a Trainer'}, {:onchange=> "#{link_to_remote(:url => {:controller => 'events', :action => 'find_new' }, :with=>"'trainer_id='+value")}"}) %>
onchange
将使用javascript,您提供了一个HTMLa
元素和链接到远程
我猜您想将用户重定向到您选择的页面
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => 'Select a Trainer'}, {:onchange=> "redirectToTrainer(this.value)"}) %>
<%= javascript_tag do %>
function redirectToTrainer(trainerId){
window.location = "<%= url_for(:controller => 'events', :action => 'find_new') %>?" + trainerId;
}
<% end %>
“选择培训师”},{:onchange=>“redirectToTrainer(this.value)”}%>
功能重定向到训练器(训练器ID){
window.location=“'events',:action=>'find_new')%>?”+trainerId;
}
有更干净的方法可以做到这一点,其中一种是不引人注目的Javascript,但我认为这正是您想要的。我做到了。。。但我还是犯了错误。我在上面添加了我的控制器代码。为什么我会出现这个错误?你能发布错误的堆栈跟踪吗?您选择的集合中是否存在语法错误?另外,你想在“发现新事物”中实现什么?如果你只是想知道这是否是一个训练器,我建议你不要买整套训练器?我没有得到任何堆栈跟踪。。。我从firebug那里得到了这个错误。我在弹出框中做了这个代码。它使用的是jQuery。我想得到所有的培训师…如果你去你的控制台,你应该看到一个堆栈跟踪,如果你从浏览器得到一个500错误。
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => 'Select a Trainer'}, {:onchange=> "redirectToTrainer(this.value)"}) %>
<%= javascript_tag do %>
function redirectToTrainer(trainerId){
window.location = "<%= url_for(:controller => 'events', :action => 'find_new') %>?" + trainerId;
}
<% end %>