在我的rails应用程序中,在所有页面上,在head部分中有以下2个元标记:
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="027GUZBeEkmv..." />
Run Code Online (Sandbox Code Playgroud)
在未使用部分呈现的表单上,存在隐藏authenticity_token字段
<input type="hidden" name="authenticity_token" value="D5TddQruJppDD3..." />
Run Code Online (Sandbox Code Playgroud)
但是,如果我只是加载这样的表单,这个字段会错过:
<%= render 'shared/comment_form' %>
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?我应该手动添加一个authenticity_token,如果是,我如何验证它?
编辑:
共享/ _comment_form.html.erb
<%= form_for([@post, @comment], :html => { :onsubmit => "validateCommentForm(event)" }, remote:true) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "Add to the article. Make it be more" %>
</div>
<%= f.submit "Save", class: "btn btn-info" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
此外,添加<input type="hidden" name="authenticity_token" id="authenticity_token" value="ANYTHING" …
我正在尝试做的是使用Prawn生成PDF,同时具有一些特定于语言的字符.
结果我收到以下错误:
raise Prawn::Errors::IncompatibleStringEncoding,
"Your document includes text that's not compatible with the Windows-1252 character set.\n" \
"If you need full UTF-8 support, use TTF fonts instead of PDF's built-in fonts\n."
Run Code Online (Sandbox Code Playgroud)
所以我尝试通过这样做来改变字体:
# app/models/prawn/change_font_decorator.rb
Prawn::Document.generate("output.pdf") do
font_families.update("Arial" => {
:normal => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold_italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf")
})
font "Arial"
end
Run Code Online (Sandbox Code Playgroud)
然而,我在尝试生成PDF文件时遇到了同样的错误.
关于如何解决这个问题的任何想法?
我可能会遗漏一些东西,因为这件事很奇怪.这是代码:
$(document).ready(function() {
$(document).mouseup(function(){
return false;
});
})Run Code Online (Sandbox Code Playgroud)
<a href="">qagq3gq343</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script>Run Code Online (Sandbox Code Playgroud)
它只是在mouseup事件上返回false .但它在Chrome中的作用是,当mouseup鼠标悬停在链接上时,在事件发生后,光标是默认值而不是指针.
您可以通过运行代码段复制它,然后单击代码段内的任何位置而不是链接,然后将光标移动到链接上.
有任何想法吗?