Я новичок в веселье.Я создал настроенный клиент контроллера (не создал его модель).Контроллер и все соответствующие виды, которые я создал, были созданы с помощью уже существующего пользовательского контроллера и видов, созданных Spree.В «новом» виде я отображаю форму для создания нового пользователя.
Теперь, когда Я выбираю роль для пользователя (как при создании, так и при обновлении), он автоматически выбирает идентификатор роли как 1. Но та же форма отлично работает в разделе «пользователь».Связанные коды:
внутри модели клиента:
module Spree
module Admin
class ClientsController < ResourceController
.
# Client does not have its own model
.
def new
@user = Spree.user_class.new
end
def edit
@roles = Spree::Role.all
@user =Spree.user_class.find_by(id: params[:id])
user = @user
end
def update
@user = Spree.user_class.find_by(id: params[:id]) #added to remove null class error
if params[:user][:password].blank? && params[:user][:password_confirmation].blank?
params[:user].delete(:password)
params[:user].delete(:password_confirmation)
end
if @user.update_attributes(user_params)
set_roles
flash.now[:success] = Spree.t(:account_updated)
end
render :edit
end
.
.
.
end
Независимо от того, какую роль я выбираю для пользователя, его роль отправляет первый идентификатор.
Хотя этот код отлично работает для уже существующего пользователя Spree.
Пожалуйста, посмотрите на мой запрос.Это было бы очень полезно.Спасибо.Пожалуйста, поправьте меня, если я ошибаюсь.