在url中使用rails格式而不是id

时间:2013-10-03 18:59:49

标签: ruby-on-rails ruby

我有奇怪的问题。在我看来,我有这样的代码:

= link_to 'Destroy', quests_path(quest), method: :destroy, class: 'btn btn-danger'

但在这种情况下我的网址看起来像这样:

http://localhost:8080/quests.1

在我的参数中

action: index
controller: web/quests
format: '1'

但是我需要在params而不是format中使用id。 请帮帮我。

编辑: 完全不起作用的方法:: delete。

routes.rb文件:

scope module: :web do
    root to: 'quests#index'

    match '/logout', to: 'sessions#destroy'

    resources :quests, only: [:new, :create, :index, :destroy] do
      get 'change_state', on: :member
    end
    resource :session, only: [:new, :create, :destroy]

    resource :user, only: [:new, :create, :destroy] do
      scope module: :user do

      end
    end
  end

3 个答案:

答案 0 :(得分:1)

这应该有效:

= link_to 'Destroy', quest, method: :delete, class: 'btn btn-danger'

你得到这个错误的原因是你将url传递给任务#index而不是任务#show / destroy。

答案 1 :(得分:1)

你拼错了

quests_path(quest)

正确

quest_path(quest)

或只是

quest

希望有所帮助

答案 2 :(得分:0)

链接应使用delete方法,例如:

= link_to 'Destroy', quest, method: :delete, class: 'btn btn-danger'

请参阅http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to