ActiveAdmin Ratyrate не может найти current_user ИЛИ Альтернатива

Я пытался интегрировать raytrate в ActiveAdmin, когда пытался включить частичное в мой activeadmin supply_company.rb, которое, как оказалось, не может найти 'current_user'. Я знаю, что при стандартной установке ActiveAdmin и разработке я оставил пользователя с правами администратора как admin_user, поэтому должен иметь возможность использовать current_admin_user для установки текущего пользователя. У меня есть подозрение, что я пытаюсь включить рендер в боковую панель.

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

Сообщение об ошибке: ActionView::Template::Error (неопределенная локальная переменная или метод current_user для #<#: 0x6b50a58>):

Приложение / controllers_rater_controller.rb

class RaterController < ApplicationController

  def create
    if admin_user_signed_in?
      obj = params[:klass].classify.constantize.find(params[:id])
      obj.rate params[:score].to_f, current_admin_user, params[:dimension]

      render :json => true
    else
      render :json => false
    end
  end
end

приложение / модели / admin_user.rb

class AdminUser < ActiveRecord::Base

 rolify
  has_one :profile, foreign_key: :admin_user_id
  accepts_nested_attributes_for :profile

  has_many :addresses
  has_many :address_types, :through => :addresses

  accepts_nested_attributes_for :addresses

  ratyrate_rater

  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, 
         :recoverable, :rememberable, :trackable, :validatable

  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => 
  "100x100>" }, :default_url => "/images/:style/missing.png"
  validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/

end

приложение / модели / supply_companies.rb

class SupplyCompany < ActiveRecord::Base

  has_many :products, :through => :product_supply_companies
  has_many :product_supply_companies, :foreign_key => 'supply_company_id'

  accepts_nested_attributes_for :products
  accepts_nested_attributes_for :product_supply_companies, :allow_destroy => true

  ratyrate_rateable "communication", "quality", "price"
end

/app/admin/supply_company.rb

ActiveAdmin.register SupplyCompany do
   permit_params :id, :company_name,
                 products_attributes: [:id, :product_name, :product_description],
                 product_supply_companies_attributes: [:id, :product_id],
                 supply_company_ratings_attributes: [:id, :admin_user_id, :supply_company_id, :supply_company_rating ],
                 admin_user_attributes: [:id]
  index do
    column :id
    column :company_name
    column :products do |pt|
      pt.products.collect {|c| c.product_name.capitalize }.to_sentence
    end
    actions
  end

filter :company_name

   form(:html => {:multipart => true}) do |f|
     f.inputs "Company Details" do
     f.input :company_name
     end
     f.actions
   end
   show title: :company_name do
     attributes_table do
       row :company_name
     end
     end

  sidebar "Products", only: :show do
    attributes_table_for supply_company do
      row "Ratings" do
        render  'supply_company_ratings'
      end
      row :products do |pt|
        pt.products.collect {|c| link_to c.product_name.capitalize, admin_products_path + "\/" + c.id.to_s}.join(", ").html_safe
      end
    end
  end
end

приложение / просмотров / админ /supply_companies/_supply_companines_ratings.html.erb

<h2>Communication  :</h2> <%= rating_for @supply_company, "communication" %>
<h2>Engine :</h2> <%= rating_for @supply_company, "quality" %>
<h2>Price  :</h2> <%= rating_for @supply_company, "price" %>

1 ответ

Решение

Звук, как будто вы установили rails g ratyrate user, вам нужно установить его с rails g ratyrate admin_user,

Другие вопросы по тегам