我想使用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
答案 0 :(得分:2)
onchange
会使用javascript,您在a
提供了一个HTML link_to_remote
元素。
我猜你想要将用户重定向到你选择的页面?
<%= 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 for one,但我认为这就是你要找的。 p>