0

route.rbにこのようなルートを設定しています

resources :users do
      resources :lists do
        resources :tasks
      end
  end

「レーキルート」を実行すると、破棄アクションのルートが表示されます。

DELETE / users /:user_id / lists /:id(.: format)

このアクションの私の実装は次のようになります。

  def destroy
    @user = User.find(params[:user_id])
    @user.lists.find(params[:id]).destroy
     render json: { status: "success" }
  end

'render'行を除くこのアクションのすべての行にコメントを付けると、JSONの結果が返されます。しかし、私は404のラインを受け取ります。私は、Railsにかなり慣れていません。誰かが私が間違っていることを教えてもらえますか?

ありがとう

4

3 に答える 3

0

これを使ってみてください。あなたにとって役立つかもしれません

<%= link_to 'Destroy', [user,list], method: :delete, data: { confirm: 'Are you sure?' } %>

あなたのコントローラーで

def destroy
  @user = User.find(params[:user_id])
  @list = @user.lists.find(params[:id]) if @user.present?
  if @list.present? && @user.present?
     @list.destroy
     status = "success"
  else
     status = "fail"
  end
  render json: {status: status}
end
于 2012-10-05T05:21:05.167 に答える
0

これを試して

List.delete_all(["ID = ? AND user_id = ?", params[:id], params[:user_id]])

またdestroy_all

于 2012-10-05T05:21:30.940 に答える
0

あなたの見解にあるものを投稿できますか?リンクでメソッドを指定する必要があると思います。たとえば、次のようになります。<%= link_to "Delete", [@user, list], method: :delete, remote: true %>

于 2012-10-05T05:10:25.957 に答える