Я пытался создать виджет для моего приложения rails и, к сожалению, мне не хватает навыков Javascript ...
Мне удалось создать виджет на основе краткого руководства из этого блога: http://www.eduvoyage.com/2008/8/3/widget-with-rails
Но то, что мне нужно, немного отличается от того, что они описывают.
Если у вас было приложение, похожее на digg или tweetmeme, с голосами за конкретную статью, как вы могли бы создать виджет для отображения голосов?
Допустим, у модели статьи есть имя, ссылка и счетчик голосов.
Вот что я попробовал:
В контроллере статей:
def index
@article = Article.find_by_link("#{request.url}")
respond_to do |format|
format.js
format.html
end
end
В index.js.erb:
var txt = ''
txt += "<div id='article_widget'>";
txt += "<h2>Article vote count:</h2>";
txt += "<%= escape_javascript(@article.votes) %>";
txt += "</div>";
document.write(txt);
Проблема, которую я получаю, заключается в том, что @article оказывается равным нулю. Чтобы выяснить, в чем дело, я добавил этот бит кода в свой файл JavaScript:
txt += "<%= escape_javascript(request.url) %>";
Результат на экране: http://localhost:3000/articles.js. Очевидно, что я не смогу использовать метод find_by_link, когда он просто возвращает путь к файлу javascript. В методе find_by_link мне хотелось бы указать текущий URL в браузере.
Или есть лучший способ сделать это?
Есть ли способ сообщить моему приложению rails точно, на какую статью ссылаются?