【问题标题】:Rails: Hide record with button, can not find record with id errorRails:用按钮隐藏记录,找不到ID错误的记录
【发布时间】:2017-01-18 00:10:33
【问题描述】:

我正在实现一种方法来隐藏表中的记录,但不通过按钮从我的数据库中删除。我在设置为 false 的表中添加了一个列“revision_active”布尔属性。使用视图条件可以显示仅设置为 true 的记录。

我的按钮(通过复选框将属性设置为 true):

<%= form_tag update_multiple_homeworks_path(:revision_active => true), method: :put do %>
....
<td><%= check_box_tag "homework[id][]", homework.id, checked = false %></td>
....

<%= submit_tag "Add to Bucket", :remote => true, :class => 'smallMobileRight button text-left' %>

在我的路线中:

resources :homeworks do
    collection do
    put 'update_multiple'
 end
end

在我的控制器中:

def update_multiple
        if params[:homework][:id]
            @homework_ids = params[:homework][:id]
            @homework_ids.each do |id|
                Homework.revision_active = true
            end
        else 
    redirect_to homeworks_homework_details_path  
    end
    respond_to do |format|
        flash[:notice] = "Added to your Bucket!"
        format.html { redirect_to homeworks_homework_details_path }
        format.json { head :no_content }
        format.js { render :layout => false }
    end
  end

参数

...
"_method"=>"put",
 "authenticity_token"=>"blah",
 "homework"=>{"id"=>["107"]},
 "commit"=>"Add to Bucket",
 "revision_active"=>"true",
 "id"=>"update_multiple"}

点击按钮时出错:

Couldn't find Homework with 'id'=update_multiple

有什么想法吗?我没有捕捉到 ID 数组,控制器出错?谢谢。

【问题讨论】:

    标签: ruby-on-rails view controller


    【解决方案1】:

    我不会给出确切的答案,因为这是一个非常具体的问题,似乎对其他人没有多大好处。我认为您最好阅读文档以了解如何做到这一点。因此,我将向您指出一些资源。

    您的路线

    看起来您将 update_multiple 作为 id 传递,而您的路由助手将 id 作为参数。

    由于这是更新集合,因此您不应该对特定记录进行操作。

    您可以运行rake routes 来了解构建路由后它需要什么参数。 (http://guides.rubyonrails.org/routing.html)

    您的复选框

    <%= check_box_tag "homework[id][]", homework.id, checked = false %>
    

    应该如下。

    <%= check_box_tag "homework_ids[]", homework.id, checked = false %>
    

    参考这里:http://apidock.com/rails/ActionView/Helpers/FormTagHelper/check_box_tag

    在您的控制器中

    你想要的可能是这个params[:homework_ids]

    参考这里:http://guides.rubyonrails.org/action_controller_overview.html#parameters

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多