Combo: Rails4, Mongoid У меня есть консоль администратора панель: /admin/moderator-slug/dashboard
, который содержит список всех пользователей с помощью кнопки, чтобы пойти управлять этим пользователем:Rails: сохранение поля пользователя от другого контроллера
<%= link_to "Manage", { controller: 'admin', action: 'manage', user: user} %>
Как вы можете см., я передаю этого пользователя в параметрах. В моем контроллере администратора, мои действия управления выглядит следующим образом:
def manage
@user = User.find(params[:user])
if params[:follow_up].present?
@user.follow_up = Date.strptime(params[:follow_up], "%m/%d/%Y")
end
end
Он успешно ведет на страницу управления: /admin/moderator-slug/manage?user=managed-user-slug
и находит @user через Params я прохожу с кнопкой.
В моей модели пользователя я создал поле «follow_up» времени.
Я хочу обновить это поле с определенным временем, выбранным с DatePicker, поэтому я создал следующий form_tag:
<%= form_tag manage_path, method: "get", remote: true do %>
Follow up: <%= text_field_tag "follow_up", nil, autocomplete: "off" %>
<%= submit_tag "Create" %>
<% end %>
При нажатии на кнопку отправить я Mongoid::Errors::InvalidFind
Когда я перехожу на скрытое поле <%= hidden_field_tag :user , @user %>
, я получаю 404. И кроме того, у меня такое чувство, что моя настройка не самая здоровая, поэтому передача этого скрытого поля действительно является обходным решением, которого можно избежать.
мои маршруты:
authenticate :user, -> (u) { u.is_moderator? } do
match 'admin/:slug/dashboard', to: 'admin/admin#dashboard', via: 'get', as: :dashboard
match 'admin/:slug/manage', to: 'admin/admin#manage', via: 'get', as: :manage
end
Любые предложения?
Пожалуйста, покажите вывод 'граблей routes'. – EugZol
"dashboard GET /admin/:slug/dashboard(.:format) admin/admin # dashboard" и "управлять GET /admin/:slug/manage(.:format) admin/admin # manage" – Ben
На самом деле я в основном хотел см. ярлык URL-адреса 'manage_path', добавьте все строки, содержащие' manage_path', в [gist] (https://gist.github.com/) или ваш вопрос – EugZol