我需要从控制器向特定方法提交表单。 我怎样才能做到这一点? 我的表格如下:
<%= 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"> </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();
}
有没有办法做到这一点?
答案 0 :(得分:2)
将update_holidays_path
更改为控制器的路径&amp;你想打电话的行动。
答案 1 :(得分:1)
打开终端。转到rails_app_root目录并执行rake routes
这将为您提供所有可用路径的列表
例如:
cases GET /cases(.:format) cases#index
此处cases#index
表示cases
是控制器名称,index
是方法
因此,当您编写cases_path
时,它将为此控制器和操作生成路径
因此,请在rake routes
列表中查找控制器和操作的匹配路由,然后选择最左侧的文本并在其后附加_path
(就像我在上面的示例中所示)然后使用此新找到的路径替换下面一行中的update_holidays_path
。
<%= form_tag({update_holidays_path, method: 'post'},{name: "exchange", id: "exchange"}) do %>
修改强>
如果rake routes
列表中没有该路径,则需要在routes.rb
文件中添加此路径。