rails app中HTML表格中的checkbox_tag - 使用AJAX更新模型

时间:2012-06-02 01:31:50

标签: ruby-on-rails ajax checkbox html-table

我想使用以下复选框和radiobuttons调用listing_controller中的“update”方法

我该如何实现?我已经在我的表格中编码了那些元素,但是如何让它们发送参数呢?我想在哪里开始使用AJAX?

    <%= stylesheet_link_tag 'listings' %>
    <h1>Listing listings</h1>
    <table class="datatable">
    <tr id="heading" >
     <th >id</th>
     <th >name</th>
    </tr>

    <% @listings.each do |listing| %>
      <tr id="body">
    <th><%=listing.id%></th>
        <th><%= link_to listing.name, edit_listing_path(listing) %></th>

    #How can I have the following invoke the update method in AJAX format
     <td><%= radio_button_tag(:keep, "Keep") %>
        <%= label_tag(:keep, "Keep") %></td>
    <td><%= radio_button_tag(:keep, "Delete") %>
        <%= label_tag(:keep, "Delete") %></td>
    <td><%= check_box_tag(:checked) %>
        <%= label_tag(:checked, "checked") %></td>
    <td><%= check_box_tag(:collected) %>
        <%= label_tag(:collected, "collected") %></td>
    <td><%= check_box_tag(:digitized) %>
        <%= label_tag(:digitized, "digitized") %></td>
    <td><%= check_box_tag(:in_database) %>
        <%= label_tag(:in_database, "in database") %></td>
      </tr>
    <% end %>
</table>
<br />
<%= link_to 'New Listing', new_listing_path %>

非常感谢。

1 个答案:

答案 0 :(得分:1)

你的需求非常模糊,但肯定会使用jQuery。进入app/assets/javascripts/listings.js.coffee并尝试以下操作。

$('input.some_class').bind('update', ->
  $.post('/listings/update', { param1: value, param2: value ... }, (data) ->
    alert('updated!')

或者只是简单的javascript(app/assets/javascripts/listings.js

$('input.some_class').bind('update', function() {
  $.post('/listings/update', { param1: value, param2: value ... }, function(data) {
    alert('updated!');
  });
}); 
  • 给你的复选框,单选按钮等一些班级名称
  • 填写您要发送的数据的相应字段(列表控制器中updates方法接受的数据)
  • 使用适当的代码进行回电(而不是alert('updated!'),你甚至可以不做任何事情)

但同样,你的需求有点模糊,我希望这是一个很好的起点。在尝试将AJAX合并到您的项目中之前,我将建议学习jQuery和coffeescript。你可以稍微调整它以利用:remote => true,但这是另一个故事。