繁体   English   中英

如何在Rails中对change进行操作?

[英]how can I make an action onchange in Rails?

我想通过collection_select与价值link_to_remote方法。 当我这样做时,我收到了内部服务器错误。 我正在使用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")}"}) %>

添加

这是我的控制器代码:

def find_new
@trainers= Trainer.all
if ["0"].include?(params[:trainer_id])
    render :partial=>'events/me'
    else
    render :partial=> 'events/something'
    end
end

onchange将期待javascript,你将使用link_to_remote为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 %>

有更简洁的方法来做到这一点,Unobtrusive Javascript为一个,但我认为这是你正在寻找的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM