2016-07-16 2 views
0

각 사용자는 블로그의 숫자를 만들 수 있습니다, 그들은 로그인 할 때, 그들은 자신의 블로그의 목록과 다음 아래와 같이 각 버튼되게됩니다 일치하지 :는 단순한 형태의 레일 - 어떤 경로

= simple_form_for activate_blog_path(blog.id), method: :put do |f| 
    = hidden_field_tag :active, value: true 
    = f.button :submit 

No route matches [PUT] "/" 

routes.rb :

resources :users 
resources :blogs do 
    member do 
    get :activate 
    put :activate 
    end 
end 
root 'pages#index' 

레일 경로가 경로에 존재하더라도, 난 여전히이 오류 메시지가 받고 있어요 노선 :

 Prefix Verb URI Pattern     Controller#Action 
     users GET /users(.:format)    users#index 
       POST /users(.:format)    users#create 
    new_user GET /users/new(.:format)   users#new 
    edit_user GET /users/:id/edit(.:format)  users#edit 
     user GET /users/:id(.:format)   users#show 
       PATCH /users/:id(.:format)   users#update 
       PUT /users/:id(.:format)   users#update 
       DELETE /users/:id(.:format)   users#destroy 
activate_blog GET /blogs/:id/activate(.:format) blogs#activate 
       PUT /blogs/:id/activate(.:format) blogs#activate 
     blogs GET /blogs(.:format)    blogs#index 
       POST /blogs(.:format)    blogs#create 
    new_blog GET /blogs/new(.:format)   blogs#new 
    edit_blog GET /blogs/:id/edit(.:format)  blogs#edit 
     blog GET /blogs/:id(.:format)   blogs#show 
       PATCH /blogs/:id(.:format)   blogs#update 
       PUT /blogs/:id(.:format)   blogs#update 
       DELETE /blogs/:id(.:format)   blogs#destroy 
     root GET /       pages#index 

blogs_controller.rb :

def activate 
    @blog.active = true 
    @blog.save 
    redirect_to root_path 
    end 

은 내가 잘못 여기서 뭐하는 거지?

+0

전체 오류 메시지를 게시 할 수 있습니까? – Pavan

+0

그게 다예요. –

+0

필수 키''id'가 누락되었습니다. – Pavan

답변

1

simple_form_for 객체 (또는 기록) 양식 태그를 생성 할 것으로 예상하는 방법을 지정해야합니다. 사용자 정의 URL과 메소드를 사용할 수있는 양식 작업에 전달하려면

= simple_form_for blog, url: activate_blog_path(blog.id), method: :put do |f| 
    = hidden_field_tag :active, value: true 
    = f.button :submit 
+0

고마워요! 그게 효과가 있었어! –

-1

당신은 행동과 컨트롤러뿐만 아니라

= simple_form_for blog, url: url_for(action: :activate, controller: 'blogs'), method: :put do |f| 
+0

다음과 같은 오류가 나타납니다 : 경로가 {: action => "activate", : controller => "blogs"}와 일치하지 않습니다. –

+0

오류가 발생했는지 궁금합니다. – margo