我在rails应用程序中使用以下表单:
<% form_remote_for :team do |f| %>
<tr>
<% 1.upto(12) do |i| %>
<td>
<%= f.check_box @mo[i] %>
<%= observe_field 'team_' + @mo[i],
:method => :put,
:with => "$(@mo[i] + '=') + $('team_'+@mo[i]).value" %>
</td>
<% end %>
</tr>
<% end %>
@mo [i]是数据库中字段的名称(例如jan,feb,mar,... dcm)。如果我要将它们全部写出来,代码看起来就像这样:
<% form_remote_for :team do |f| %>
<tr>
<td>
<%= f.check_box :jan %>
<%= observe_field 'team_jan',
:method => :put,
:with => "'jan=' + $('team_jan').value"
</td>
...
</tr>
<% end %>
感谢您的帮助。
答案 0 :(得分:2)
您的:with语句有一些语法问题,而且您也没有正确插入ruby变量。试试这个:
:with => "'#{@mo[i]}=' + $('team_#{@mo[i]}').value"
我通过获取您的预期输出'jan=' + $('team_jan').value
并将jan
的所有实例替换为#{@mo[i]}
来获得此结果,这是插入包含月份名称的变量的方法。
此外,您可能需要添加:url
选项以告知应该将ajax调用发送到何处。像这样:
<%= observe_field 'team_jan',
:url => team_path(@team),
:method => :put,
:with => "'#{@mo[i]}=' + $('team_#{@mo[i]}').value" %>
我在这里猜测您所需的端点是team_path(@team)
,但如果不是,则替换它。