2011-04-27 4 views
1

У меня есть этот маршрут:Использование пост с link_to

avatar_add_from_collection POST /avatars/:avatar_id/add_from_collection(.:format)   {:action=>"add_from_collection", :controller=>"avatars"} 

, и я пытаюсь создать ссылку с помощью link_to, который использует пост. Причина, по которой я должен это сделать, состоит в том, что (по-видимому) вы не можете поместить изображение на кнопку с помощью button_to.

<%= link_to inline_avatar(avatar.fetch_avatar_image(:thumb)), add_from_collection_avatar_path(avatar),:method=>:post%> 

воспитывает

No route matches "/avatars/3/add_from_collection" 

Если изменить файл маршрутов сделать это GET это работает просто отлично.

link_to выглядит

link_to inline_avatar(avatar.fetch_avatar_image(:thumb)), avatar_add_from_collection_path(avatar),:method=>:post 

EDIT:

Jade::Application.routes.draw do 

    resources :avatar_categories do 
    delete :remove_item 
    end 

    resources :avatars do 
    member do 
    post 'add_from_collection', :on=>:member 
    end 
    end 

    resources :categories,:addresses,:calendars,:topics,:profile,:news,:account_setting 
    resources :boards do 
    member do 
     get :move 
     post :move_category 
    end 
    end 

    post 'avatars/display_collection' 
    get "user/index" 
    get 'login/index' 
    get 'login/new' 
    post 'login/create' 
    post 'login/authenticate' 
    get 'login/forgot_password' 
    put 'login/reset_password' 
    get 'login/logout' #post? 
    get 'admin/index' 
    get 'admin/app_settings' 
    get 'admin/user_settings' 
    get 'admin/avatars' 
    post 'admin/avatar_upload' 
    post 'admin/update_app_settings' 
    get 'news_configurations/index' 
    put 'news_configurations/update' 
    get 'message_board_configurations/index' 
    put 'message_board_configurations/update' 
    get 'profile_settings/edit' 
    post 'profile_settings/update' 

    resources :posts do 
    get :new,:edit 
    post :create,:update,:destroy 
    end 

    match '/login' => 'login#index', :as => 'login' 
    match '/admin' => 'admin#index', :as => 'admin' 

    resources :login do 
    get :index 
    post :authenticate,:logout 
    end 
root :to => "news#index" 

end 
+0

показать свои маршруты – fl00r

+0

я avatar_add_from_collection POST/аватары /: avatar_id/add_from_collection (. : format) {: action => "add_from_collection",: controller => "avatars"} сгенерировано из ресурсов: avatars do сообщение 'add_from_collection' end – david

+0

вы должны указать опцию ': as' – fl00r

ответ

0
resources :avatars do 
    member do 
    post 'add_from_collection' 
    end 
end 

или

resources :avatars do 
    post 'add_from_collection', :on => :member 
end 

EDIT

Это неправильно

resources :avatars do 
    member do 
    post 'add_from_collection', :on=>:member 
    end 
end 

использование этого

resources :avatars do 
    post :add_from_collection, :on=>:member 
end 

Но похоже, это не поможет

+0

Спасибо, но это не сработало. – david

+0

okm Я обновил свой пост – fl00r

+0

Это на самом деле усугубило ситуацию, так как button_to не работает ни с одним из них, ни с той же ошибкой маршрута с link_to – david

Смежные вопросы