【问题标题】:How to pass the UI control values as the parameters to the Controller in Rails?如何将 UI 控件值作为参数传递给 Rails 中的控制器?
【发布时间】:2013-05-23 09:29:36
【问题描述】:

我在Rails中遇到了参数传递的问题。

我有一个名为“account”的对象和另一个名为“locale”的对象。它们之间是一对多的关系。一个区域可以映射到多个帐户。

在 accounts/index.html.erb 上,我有一个下拉列表,其中将列出所有可用的语言环境。 我在下面有一个链接。

预期当我点击此链接时,会调用帐户控制器的 index 方法,并传递所选语言环境 id 的值。 index 方法将检索属于该语言环境的所有帐户。

阻碍我的是我不知道如何将下拉列表的选定值传递给控制器​​。

我只知道传递参数的基本方式是:

<%= link_to 'Refresh', {:action => 'index', :fromvar => 'refresh', :selected_locale_id => '1'}.

而从控制器,我们可以通过:

params[:selected_locale_id]

但它是固定值的情况。以我为例,如何处理动态 UI 控件值?

link_to 是否支持嵌入一些 javascript?

我的 rails 版本是 3.2.13。

有人对此有想法吗?

【问题讨论】:

    标签: ruby-on-rails parameters link-to


    【解决方案1】:

    您可以以表单的形式执行此操作,也可以在链接的 onclick 事件中以 javascript 的形式执行此操作。我会推荐一个表格。

    以下内容应该可以帮助您入门:

    <%= form_for :index do |form| %>
      <%= form.select :locale_id, Locale.all %>
      <%= form.submit %>
    <% end %>
    

    请务必在索引操作中添加post 路由以允许提交表单。

    【讨论】:

    • 感谢您的回复。但我不太明白如何向索引操作添加发布路由以允许表单提交。我在 routes.rb 中只有“资源:locales”和“资源:accounts”。我应该在这个文件中应用任何更改吗?
    猜你喜欢
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多