【问题标题】:Generate hidden form field data with rails button_to helper?使用 rails button_to helper 生成隐藏的表单字段数据?
【发布时间】:2012-02-29 13:32:36
【问题描述】:

目前,我使用以下代码将 params[:id] 传递给 line_items create

<%= button_to 'Add to Cart', { controller: 'line_items', action: 'create', id: brick },  class: 'green radius nice button', method: :post, remote: true %>

但是,它会在我不认为 button_to 做的 url 查询上附加 id 参数。我想要的是通过隐藏的表单字段传递 id 参数。我可以在 button_to 或任何解决此问题的方法中执行此操作吗?

【问题讨论】:

    标签: ruby-on-rails post helper


    【解决方案1】:

    从 Rails 4.1.0 开始,button_to 现在有额外的选项 :params 可以接收将转换为隐藏字段的哈希。例如:

    button_to 'Send Invitation', invitation_path(user), params: {'user[email]' => user.email}
    

    会给:

    <form action="/users/invitation" class="button_to" method="post">
       <div>
           <input type="submit" value="Resend">
           <input name="user[email]" type="hidden" value="user@yahoo.com">
       </div>
    </form>
    

    【讨论】:

      【解决方案2】:

      我在项目的一个模块中做了类似的事情:

      首先,我添加了一个带有隐藏字段的表单:

      <%= form_tag({:action => 'my_action'}, :id=>"item_form", :method => :post, :remote=>true) do%> 
        <%= hidden_field_tag :item_id, 0%>
      <% end %>
      

      列表中的所有 mi 项目都有一个 check_box_tag,其中包含项目 ID:

      <%= check_box_tag "item_ids", item.id, false,:id => item.id, :class => "my_fancy_class"%>
      

      当一个项目被选中时,只需捕获事件,替换 hidden_​​field 上的值并触发表单:

      function( event, ui ) {
              $("#item_id").attr('value',ui.selected.id);
              $('form#item_form').submit();
            }
      

      如果您想渲染内容,只需将 action.js.erb 文件添加到您的控制器视图文件夹,但那是另一回事。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多