я пытаюсь пользователь acts_as_votable драгоценного камня, чтобы сделать пользователь проголосовать за звездаacts_as_votable, не определен метод `upvote_by» для ноля: NilClass
это мои звезды-контроллер
class StarsController < ApplicationController
before_filter :authenticate_user!, except: [:index, :show]
before_action :upvote
def index
@stars = Star.all.order("created_at DESC")
end
def upvote
# @star = Star.find(params[:id])
@star.upvote_by current_user
redirect_to @star
end
def show
@star= Star.find(params[:id])
end
def new
end
def create
@star =Star.new(stars_params)
@star.save
redirect_to @star
end
private
def stars_params
params.require(:star).permit(:name , :description , :image)
end
end
и это моя звезда модель
class Star < ActiveRecord::Base
has_many :books
has_attached_file :image, :styles => { :small => "150x150>" }
validates_attachment_presence :image
validates_attachment_size :image, :less_than => 5.megabytes
validates_attachment_content_type :image, :content_type => ['image/jpeg', 'image/png']
acts_as_votable
end
и маршруты
Rails.application.routes.draw do
resources :books
devise_for :users, path_names: {sign_in: "login", sign_out: "logout"}
resources :stars do
member do
put "like" , to: "stars#upvote"
end
end
root 'stars#index'
end
я получаю эту ошибку «неопределенный метод` upvote_by»для ноль: NilClass»
благодаря
спасибо, но когда я редактирую eh before_action, как вы сказали, новая ошибка в звездной модели неопределенная локальная переменная или метод 'act_as_votable 'для # <класс: 0xb52a7500> –
Вы перезапустили сервер после установки этого драгоценного камня? – BroiSatse
Да, я перезапустил сервер –