Попытка создать ссылку link_to для объекта nested_attributes в представлении его родителей - PullRequest
0 голосов
/ 29 марта 2012

Таким образом, у меня есть ситуация, когда пользователи принадлежат учетным записям.

Я перечисляю пользователей для каждой учетной записи следующим образом:

for @user in @account.users.where(['email <> ?', 'null']).sort! {|b, a| a.id <=> b.id}

Для каждого пользователя, которого я хочу предложитьфункциональность для удаления по ссылке.У меня есть следующее:

<p>Are you sure you want to delete <%=h @user.firstname %>?:
<%= link_to "Yes", account_users_path(@user), :remote => true, :method => :delete, :class => "button" %>
<span class="button canceldeleteobject"> No </span></p>

Однако, когда я запускаю это, я получаю:

Started DELETE "/accounts/28/users" for ::1 at 2012-03-29 09:42:39 -0400

AbstractController::ActionNotFound (The action '28' could not be found for AccountsController):

Идентификатор пользователя «28», где в качестве идентификатора учетной записи «15», поэтомуЯ чувствую, что это как-то связано с элементом account_users_path, но любой свет, который вы могли бы пролить на лучший способ сделать этот тип удаления nested_attribute, был бы очень признателен.

EDIT:

Просмотр маршрутовкак это:

  devise_for :users, :controllers => { :sessions => "sessions" }, :skip => :registrations do
    get 'users/edit' => 'registrations#edit', :as => 'edit_user_registration'
    put 'users' => 'registrations#update', :as => 'user_registration'
    delete 'users' => 'registrations#destroy', :as => 'destroy_user_registration'    
  end

  resources :accounts do
    resources :assessments, :areas, :risks, :controls, :persons, :roles, :mitigations, :comments, :users
    collection do
      put :update_attribute_on_the_spot
      get :get_attribute_on_the_spot
    end
  end

1 Ответ

0 голосов
/ 29 марта 2012

Вместо этого следует использовать account_user_path(@account, @user) (у вас есть множественное число users, и вы не указали родителя account).

...