2014-09-18 2 views
0

Я обновляю apllication от рельсов 2 до рельсов 3. И переписываю маршруты с ресурсами. Как написать маршрут к следующим действиям:Маршруты. Rails 3

def delete_attachment 
    @object = Article.find(params[:id]) 
    attachment = Attachment.find(params['attachment_id']) 
    attachment.attachment = nil 
    attachment.destroy 
    redirect_to :action => 'edit', :id => @object.id 
    end 

    def edit_attachment 
    @object = Article.find(params[:id]) 
    attachment = Attachment.find(params['attachment_id']) 
    attachment.title = params['attachment_title'] 
    attachment.description = params['attachment_description'] 
    attachment.save 
    redirect_to :action => 'edit', :id => @object.id 
    end 

    def add_attachment 
    @object = Article.find(params[:id]) 

    attachment = Attachment.new 
    attachment.attachment = params['attachment_file'] 
    attachment.title = params['attachment_title'] 
    attachment.description = params['attachment_description'] 
    attachment.article_id = @object.id 
    attachment.save 

    params['attachment_title'] = nil 
    params['attachment_description'] = nil 

    redirect_to :action => 'edit', :id => @object.id 
    end 

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

resources :articles do 
    delete '/articles/delete_attachment', :to => 'articles#delete_attachment' 
    put '/articles/edit_attachment', :to => 'articles#edit_attachment' 
    post '/articles/add_attachment', :to => 'articles#add_attachment' 
    end 

У меня нет возможности проверить это на сервере, потому что по-прежнему существует много несовместимостей.

ответ

1

Вы можете изменить маршруты в:

resources :articles do 
    member do 
    delete 'delete_attachment' 
    put 'edit_attachment' 
    post 'add_attachment' 
    end 
end 
+0

Спасибо, что abou edit_attachment.Which hhtp глагол использовать или положить? – AlxGol

+0

В соответствии с вашим кодом, действие edit_attachment обновляет вложение, поэтому используйте PUT здесь. –

1

Если у вас нет нескольких маршрутов членов, вы можете также передать: на маршруте, исключая блок:

Like,

resources :photos do 
    get 'preview', on: :member 
end 
Смежные вопросы