2012-01-07 4 views
0

テキストリンクからレコードの単一の属性を更新しようとしていますが、動作しないようです。ここカスタムアクションとlink_toを使用してレコードを更新する

は私のコントローラのアクションです:

<%= link_to "Approve", approve_admin_tattoos_path(tattoo), :remote =>true, :method => :put %> 

と私のルートは、次のとおりです:へ

def approve 
    @tattoo = Tattoo.find(params[:id]) 
    @tattoo.upate(:status => "approved") 
     respond_to do |format| 
     format.js 
     end 
    end 

私のリンクがある

match "/admin/approve/:id" => "admin#approve", :as =>"approve_admin_tattoos", :via => :post 

しかし、私はこのエラーを取得しておいてください。

Started PUT "/admin/approve/223" for 127.0.0.1 at 2012-01-07 12:57:29 -0500 
    Processing by ErrorsController#not_found as JS 
    Parameters: {"id"=>"223"} 
Rendered shared/_login.html.erb (192.1ms) 
    Member Load (0.2ms) SELECT `members`.* FROM `members` WHERE `members`.`id` = 7 LIMIT 1 
    MemberRole Load (0.1ms) SELECT `member_roles`.* FROM `member_roles` WHERE (`member_roles`.member_id = 7) LIMIT 1 
    SQL (0.7ms) SHOW TABLES 
    SQL (0.1ms) SELECT COUNT(*) FROM `tattoos` WHERE `tattoos`.`status` = 'pending' 
     SQL (0.1ms) SELECT COUNT(*) FROM `feedbacks` WHERE `feedbacks`.`approved` = 0 
    SQL (0.1ms) SELECT COUNT(*) FROM `tattoos` WHERE `tattoos`.`status` = 'reported' 
Rendered shared/_navbar.html.erb (701.3ms) 
Rendered shared/_login_form.html.erb (2.6ms) 
Rendered errors/not_found.html.erb within layouts/application (912.7ms) 
Completed 404 Not Found in 929ms (Views: 925.8ms | ActiveRecord: 1.4ms) 

ActionController::RoutingError (uninitialized constant AdminController): 
+0

mehtodは入力ミスですか? – lucapette

+0

ちょうどタイプミス、ありがとう – rugbert

答えて

1

これはルートと関係があると思います。あなたのルートにはvia =>:postがありますが、ビューにはmethod =>:postがあります。あなたが更新している場合は、RESTに従ってください。

は、=>「管理者#は承認」「承認」に置く::=>「approve_admin_tattoos」

としても、私は「試合「/管理者の最初のスラッシュは/承認考えるとまた、あなたのルートを宣言することができ/:id "'は休憩の原因にもなる可能性があります。

+0

私はその最初のスラッシュを取り出したが、それは何も変更されていない、まだコントローラを打つことはありません。 – rugbert

関連する問題