Я работаю в интерфейсе, которому нужна информация из созданной видеомодели. Это означает, что мне нужно будет выполнить запрос MySQL, чтобы получить нужную мне информацию. Мой код это, в моем interface.js.erb
файле:Использование кода Ruby/Rails в файле Javascript
...
function play_vid()
{
low_fps = '<%= @video.low_fps %>' ;
alert(low_fps); //checking
if(low_vid.paused){
low_vid.play();
play_icon.classList.remove("icon-play-circle");
play_icon.classList.add("icon-pause");
}else{
low_vid.pause();
play_icon.classList.remove("icon-pause");
play_icon.classList.add("icon-play-circle");
}
}
...
Приведенный выше код возвращает меня это:
NoMethodError in Videos#show
Showing /home/user/My Projects/Ruby Projects/Video_APP/app/views/layouts/application.html.erb where line #8 raised:
undefined method `low_fps' for nil:NilClass
(in /home/user/My Projects/Ruby Projects/Video_APP/app/assets/javascripts/jQuery/interface.js.erb)
Extracted source (around line #8):
5: <%= stylesheet_link_tag "application", :media => "all" %>
6: <%= javascript_include_tag "jQuery/jquery-1.7.2.min.js" %>
7: <%= javascript_include_tag "jQuery/jquery-ui-1.8.21.custom.min.js" %>
8: <%= javascript_include_tag "application.js" %>
9: <%= javascript_include_tag "bootstrap-dropdown.js" %>
10: <%= javascript_include_tag "jQuery/interface.js.erb" %>
11: <%= javascript_include_tag "jQuery/events_controls.js" %>
я должен использовать файл нормальный * .js? каковы основные отличия и как я могу исправить свою проблему?
EDIT: (? Видео/show.html.erb)
# GET /videos/1
# GET /videos/1.json
def show
@video = Video.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @video }
end
end
Согласно вам сообщение об ошибке, переменная '@ video' не установлена как' low_fps' в неопределенном методе. Вы проверили, действительно ли вы определили '@ video' в своем контроллере? – Veger
какой контроллер? мой VideoController был сгенерирован автоматически Rails –
@TestTest Независимо от того, какой контроллер обрабатывает запрос, когда файл 'interface.js.erb' отображается, когда он выдает ошибку. –