[英]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.