rails 2.1.2 collection_select with:onchange和a:with

时间:2010-11-29 16:14:03

标签: ruby-on-rails ruby

经过大量的搜索和阅读后,我得到了一个看起来像这样的collection_select

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s,{:with => "this.value"},
         {:onchange => remote_function(
             :url => {:action => "updatelevel", :controller => "user", :id=> user.id})
         } %>

然而,它没有将所选值传递给我的控制器,我唯一得到的就是零。

我已经搞砸了其中的不同组合:应该和尝试测试字符串,但它似乎从来没有做任何事情。

我错过了一些愚蠢的东西吗?我应该看一下“有说服力”的例子吗?

Rails似乎变化如此之快以至于很难知道论坛帖子正在讨论哪个版本,而我为collection_select读取的api并没有显示我可以在选项哈希中添加的内容。

1 个答案:

答案 0 :(得分:5)

我在运行Rails 2.3.10的应用上查看了这个。您的'with'参数位于错误的位置,它是远程功能的选项,而不是集合选择。此外,以这种方式传递值将得到一个看起来像{“134523456”=&gt;的params散列。 “”},这可能不是你想要的。您必须将“with”值结果放在以JavaScript为中心的字符串中。

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s, {},
      {:onchange => remote_function(
        :url => {:action => "updatelevel", :controller => "user", :id=> user.id},
        :with => "'level_id='+this.value"
      )
    }
%>