显示未出现在Rails应用程序中
Showdown Not Appearing in Rails App
我是第一次使用showdown-rails
gem,在让它出现时遇到了一些问题。我按照GitHub页面上的说明完成了gem的安装,包括在我的application.js
文件中的//= require showdown
。我在wikis#edit
/wikis#new
页面上的_form
部分中使用它,使用以下代码:
<%= form_for(@wiki) do |f| %>
<%= f.label :title %><br>
<%= f.text_field :title, class: "form-control" %>
<%= f.label :body %><br>
<%= f.text_area :body, class: "form-control", style: "height: 250px", id: "wiki_body" %>
<% if current_user.admin? || current_user.premium? %>
<%= f.label :private, class: 'checkbox' do %>
<%= f.check_box :private %> Make Wiki Private
<% end %>
<% end %>
<% if @wiki.private? %>
<%= f.label "Add Collaborators", class: 'checkbox' %>
<div style="height: 80px; overflow: scroll; border: thin grey solid; padding-left: 10px">
<% @users.each do |user| %>
<%= check_box_tag "wiki[user_ids][]", user.id, @wiki.users.include?(user) %>
<%= user.name %><br>
<% end %>
</div>
<% end %>
<script>
var converter = new showdown.Converter();
$('#wiki_body').on('keyup', function() {
var mdown = $(this).val();
$('#wiki_preview').html(converter.makeHtml(mdown));
});
</script>
<div class="well" style="margin-top: 20px">
<p id="wiki_preview"></p>
</div> <!-- showdown well -->
<div class="text-center">
<%= f.submit "Create Wiki", class: "btn-custom" %>
</div> <!-- text-center -->
<% end %>
井会出现,但应该渲染的实际文本Showdown
永远不会出现。这是我第一次使用宝石,所以我不确定哪里出了问题。有人能在这里指出我的错误吗?
虽然这个问题有点老,但我也有同样的问题,因为还没有答案,所以我想分享我的结果。
首先,最好不要直接在视图中编写JavaScript,但应该使用assets/javascript
子目录下的相应文件,即assets/javascripts/wiki.js
。
其次,我遇到了rails问题,无法在安装的版本中正确加载导入的javascript。我在JavaScript控制台上得到了Reference Error: showdown is not defined
。奇怪的是,仅仅运行bundle update
就解决了这个问题。
第三,我遇到这段代码的turbolinks
有一些问题,默认情况下它是由rails激活的。基本上来说,你需要确保你的脚本将在涡轮链接建立页面后加载。您可以通过在函数之前插入$(document).on('turbolinks:load', function()
来确保这一点,在您的情况下是
$(document).on('turbolinks:load', function() {
var converter = new showdown.Converter();
$('#wiki_body').on('keyup', function() {
var mdown = $(this).val();
$('#wiki_preview').html(converter.makeHtml(mdown));
});
}
您可以在views/layouts/application.html.erb
文件中检查涡轮链接是否已激活,如果涡轮链接已激活,则会有一行显示<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'%>
- angularjs+rails应用程序中未显示模板
- 滚动到Rails 4应用程序中的顶部jQuery
- React Rails应用程序中动态子项的密钥分配问题
- 为什么Turbolinks不能正常工作?Rails应用程序
- 为什么Highchart在我的rails应用程序中加载了两次?(未捕获的Highcharts错误#16)
- 为我的rails应用程序显示javascript弹出消息
- 如何在rails应用程序中测试AJAX加载的内容
- Ruby On Rails应用程序与angularJS关于AJAX
- Ember.js+传单+rails(使用Javascript MVC创建rails应用程序并打开源代码映射)
- 在我的Rails应用程序中使用Stripe对卡充电时出现问题
- Basecamp的Trix WYSIWYG编辑器gem没有在Rails 4应用程序中保存文件附件
- Rails 应用程序(狂欢) - 突然的“未捕获的类型错误”
- 如何在咖啡脚本中识别提交按钮,Rails 3应用程序
- 如何使用ScriptTags开发用于shopify的rails应用程序
- Rails 4 应用程序 - Heroku / Cloudfront - 资产无法从源正确服务
- 如何在 Rails 应用程序中使用任何 JavaScript 代码
- 如何在 Rails 应用程序中向 Galleria 添加自定义描述
- 如何使用Bootstrap和Heroku为Rails应用程序添加隐藏的播放音频
- 是否有人在生产 Rails 应用程序中使用 Babel/6 到 5
- Rails应用程序中的每个javascript文件都需要.on('page:change',初始化)吗?