0

ルート

   resources :links, only: [:new, :create, :index, :destroy]

リンクコントローラ

class LinksController < ApplicationController
before_filter :signed_in_user

def new
@user = current_user
@tags = @user.tags
@link = Link.new
end

def create
@link = Link.new(params[:link])
if @link.save
  flash[:success] = "Link created!"
  redirect_to root_url
else
  render 'new'
end
end

def index
@links = Link.paginate(page: params[:page])
end

def destroy
@link.destroy
redirect_to links_path
end

end

html.erb

<li>
<span class="location_info"> From Tag: <%= link.from_tag.ref %></span>
<span class="location_info"> To Tag: <%= link.to_tag.ref %></span>
<span class="location_info"> Cost: <%= link.value %>
| <%= link_to "delete", link, method: :delete,
                                 data: { confirm: "You sure?" } %></span>
</li>

このエラーが発生するのはなぜですか?

grep

4

1 に答える 1

0

github のコードはここにあるものとは異なりますが、destroy最初にアクションでリンクを見つけてから破棄する必要はありませんか? 現在はdestroy空の@link変数を呼び出しています。

リンクとルートが良さそうなので、次のような破棄アクションが必要だと思います。

def destroy
  @link= Link.find(params[:id])
  @link.destroy
  redirect_to links_path
end

アプリのどこかに @link オブジェクトを見つけるフィルターがない限り。github でコードを更新して、ダウンロードしてコンピューターにインストールし、上記の解決策が機能しない場合にさらに調査できるようにします。

于 2013-03-12T22:59:11.150 に答える