首页 > 解决方案 > 使用自定义狂欢控制器的视图关联特定角色的问题

问题描述

我是新来的狂欢。我创建了一个定制的控制器客户端(没有创建它的模型)。我创建的控制器和所有相应的视图都是借助 Spree 创建的预先存在的用户控制器和视图。在“新”视图中,我呈现一个表单来创建一个新用户。

现在,当我为用户选择一个角色时(在创建和更新时),它会自动选择角色 id 为 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

无论我为用户选择哪个角色,它都会发送第一个 id。

虽然此代码对于已经存在的 Spree 用户来说工作得很好。

请参阅我的查询。这将是一个很大的帮助。谢谢你。如果我错了,请纠正我。

标签: ruby-on-rails-4viewcontrollerspree

解决方案


推荐阅读