【问题标题】:How to submit form to specific method?如何将表单提交到特定方法?
【发布时间】:2014-04-07 15:18:04
【问题描述】:

我需要从我的控制器向特定方法提交表单。 我怎样才能做到这一点? 我的表单如下所示:

<%= form_tag({update_holidays_path, method: 'post'},{name: "exchange", id: "exchange"}) do %>
<table width="auto" border="0">
  <thead>
    <th  scope="col">Selected</th>
    <th width="50" scope="col">&nbsp;</th>
    <th  scope="col">Holidays</th>
  </thead>  
  <tbody>
  <tr>
  <td>  
    <% holidays_array = @group.holidays.all.map { |holiday| [holiday.name, holiday.id] } %>
    <%= select(:holiday_id, :name, options_for_select(holidays_array),{}, 
    {:multiple => true, :style => "width: 300px; background-color: #9FE", :width => "300", :size => 20, :id=>"left" }  ) %>
  </td>
  <td align="center">
      <%= link_to "<<", {anchor: "", remote: true}, {id: "toleft" ,  w_command: "add_holiday", w_auth: form_authenticity_token , w_controller: "groups",  w_id: @group.id} %>
      <br /><br />
      <%= link_to ">>", {anchor: "", remote: true}, {id: "toright" , w_command: "rem_holiday", w_auth: form_authenticity_token , w_controller: "groups",  w_id: @group.id} %>
  </td>    
  <td>
    <% holidays_array = Holiday.all.map { |holiday| [holiday.name, holiday.id] } %>
    <%= select(:holiday_id, :name,  options_for_select(holidays_array),{}, 
    { :multiple => true, :style => "width: 300px; background-color: #F99", :width => "300", :size => 20, :id=>"right" } ) %>
  </td>
  </tr>
  </tbody>
</table>

我想使用以下 javascript 提交我的左侧选择:

var save=function()
{
alert("0");
var left = document.getElementById("left");
alert(left);
var result = document.exchange;
alert(result);
result= ""
alert("3");
for(i=0;i<right.length;i++)
    {       
    result.value=result.value+","+left.options[i].value; //right.options[i].selected = true;
    alert("4,"+i+"    "+result.value);
    }
alert("5");          
result.submit();
}

有没有办法做到这一点?

【问题讨论】:

    标签: javascript jquery ruby-on-rails forms


    【解决方案1】:

    update_holidays_path 更改为您要调用的控制器和操作的路径。

    【讨论】:

      【解决方案2】:

      打开终端。转到您的 rails_app_root 目录并执行rake routes 这将为您提供所有可用路径的列表

      例如:

       cases GET    /cases(.:format)                                    cases#index
      

      这里cases#index表示cases是控制器名称,index是方法 所以当你写cases_path时,它会为这个控制器和动作生成路径

      因此,在rake routes 列表中找到您的控制器和操作的匹配路由,然后选择最左侧的文本并在其后附加_path(就像我在上面的示例中所示)然后替换@987654329 @ 在下面这条新找到的路径。

      &lt;%= form_tag({update_holidays_path, method: 'post'},{name: "exchange", id: "exchange"}) do %&gt;

      编辑

      如果rake routes 列表中不存在该路径,那么您需要将该路径添加到您的routes.rb 文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-14
        • 1970-01-01
        • 2017-01-12
        相关资源
        最近更新 更多