Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Rails中进行更改操作?_Javascript_Ruby On Rails_Ajax - Fatal编程技术网

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,您提供了一个HTML
a
元素和
链接到远程

我猜您想将用户重定向到您选择的页面

<%= 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 %>