rails form_tag和调用destroy方法的单选按钮

时间:2014-01-26 05:18:01

标签: ruby-on-rails ruby syntax

我正在为我的应用创建一个管理页面,它只显示我数据库中的所有内容。我希望其中一个表头被删除,表数据是一个单选按钮,单击并按回车键时,从我的表(和数据库)中删除该列。

我有从调用资源创建的DELETE路由:routes.rb中的url:

resources :urls

# DELETE /urls/:id(.:format)      urls#destroy

我的网址控制器中有Destroy方法:

def destroy
    id = params[:id]
    url = Url.find(id)
    url.destroy

end

在我的admin.html.erb中,我有以下代码:

<div class="webpage-name"> Admin Page </div>

    <table class="table table-hover table-striped">
        <thead>
            <tr>
                <th> id </th>
                <th> link </th>
                <th> random_string </th>
                <th> clicks </th>
                <th> delete </th>
            </tr>
        </thead>
        <tbody>
            <% @urls.each do |url| %>
                <tr>
                    <td><%= url.id %></td>
                    <td><%= url.link %></td>
                    <td><%= url.random_string %></td>
                    <td><%= url.clicks %></td>
                    <td><%= form_tag(urls_path, method: "delete")%><%= url.radio_button%></td>
                </tr>
            <% end %>
        </tbody>
    </table>

</div>

我想要实现的是最终的<td>。我创建了一个form_tag,用urls_path将信息发送到method: "delete"。但是现在我如何实际制作一个单选按钮,复选框或任何允许我选择许多选项然后按Enter键并删除它们的东西?另外,我对此非常陌生,所以我不确定我的form_tag语法是否正确并且做了我认为它正在做的事情。

当我从代码中删除<%= url.radio_button%>时,我能够正常查看管理页面,并且只有一个空的删除列。

1 个答案:

答案 0 :(得分:0)

尝试在单击单选按钮上提交表单,如

<% form_tag(url_path(url), method: "delete") do %>
<%= radio_button_tag :remove, url.id, false, :onchange =>"this.closest('form').submit();" %>
<% end %>

http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-radio_button_tag 我不确定这是否可行或不尝试。