Я использую плагин jQuery Raty для моего ruby на приложении rails 4.0 и, похоже, работает, за исключением того, что изображения для звезд не загружаются на экран.
Таким образом, эти изображения должны быть звёздами ^ Когда я навешиваю их на консоль во время работы веб-кирпича, выводится следующее. (Мой эшафот называется отзывами)
Начато GET "/reviews/star-off.png" для 127.0.0.1 в 2014-03-28 14:15:42 -0400 Обработка по отзывамController # показать как PNG Параметры: {"id" => "star-off" } Обзор загрузки (1.3ms) SELECT "отзывы". * FROM "отзывы" WHERE "отзывы". "Id" = $ 1 LIMIT 1 [["id", "star-off"]] Завершено 404 Не найдено в 2ms ActiveRecord:: RecordNotFound (не удалось найти обзор с id = star-off): app/controller/reviews_controller.rb: 67: in 'set_review'
В настоящее время у меня есть звездные изображения в приложениях/активах/javascripts/images, но они также пытались поместить их в приложение/активы/изображения и приложения/представления/обзоры, но они все равно не появятся. Является ли моя проблема, что они не находятся в правильном каталоге (и если да, в какой директории они должны быть) или мне нужно добавить код вручную в контроллер моих отзывов? Благодарю.
edit: Поэтому, когда я пытаюсь использовать его на моей индексной странице, я получаю сообщение об ошибке, поэтому мне нужно что-то сделать для своего файла route.rb?
ActionController :: RoutingError (соответствие NNo [GET] "/star-off.png")
edit: в соответствии с запрошенными здесь маршрутами.rb
ConcertReview::Application.routes.draw do
resources :reviews
get "review/index"
get "review/artist"
get "review/date"
get "review/venue"
get "review/genre"
get "review/comments"
root 'reviews#index'
get 'reviews/' => 'reviews#index'
end
и здесь review_controller.rb (автогенерируется с эшафота и не модифицировался)
class ReviewsController < ApplicationController
before_action :set_review, only: [:show, :edit, :update, :destroy]
# GET /reviews
# GET /reviews.json
def index
@reviews = Review.all
end
# GET /reviews/1
# GET /reviews/1.json
def show
end
# GET /reviews/new
def new
@review = Review.new
end
# GET /reviews/1/edit
def edit
end
# POST /reviews
# POST /reviews.json
def create
@review = Review.new(review_params)
respond_to do |format|
if @review.save
format.html { redirect_to @review, notice: 'Review was successfully created.' }
format.json { render action: 'show', status: :created, location: @review }
else
format.html { render action: 'new' }
format.json { render json: @review.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /reviews/1
# PATCH/PUT /reviews/1.json
def update
respond_to do |format|
if @review.update(review_params)
format.html { redirect_to @review, notice: 'Review was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @review.errors, status: :unprocessable_entity }
end
end
end
# DELETE /reviews/1
# DELETE /reviews/1.json
def destroy
@review.destroy
respond_to do |format|
format.html { redirect_to reviews_url }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_review
@review = Review.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def review_params
params.require(:review).permit(:artist, :venue, :date, :genre, :sound, :stagePresence, :songSelection, :overallRating, :comments)
end
end
У меня была такая же проблема в моем проекте. Звездные изображения принадлежат к приложениям/активам/изображениям, как вы пробовали. Тем не менее, вам необходимо передать raty путь, например:
$('div').raty({
readOnly: true,
halfScore: true,
score: 3,
path: '/assets'
});
Это работает для меня.
Кроме того, если у вас есть turbolinks, вам придется tweek любой $ (document).ready(function() {...}); Ты можешь иметь. Это была проблема, с которой я столкнулся сразу после этого.
id
вы пытаетесь отправитьname
? показатьreviews_controller
иroutes.rb
пожалуйста