.erb,.rhtml和.html.erb有什么区别?
目前,当我在 erb 模板(用于 HTTPServer/cgi)上遇到错误时,我会执行以下操作:
调用堆栈似乎与我的 .rhtml 文件中的任何内容都不对应。
(erb):6:in `block in <main>'
/opt/local/lib/ruby/1.9.1/erb.rb:753:in `eval'
/opt/local/lib/ruby/1.9.1/erb.rb:753:in `result'
bin/correct.rb:45:in `block in <main>'
/opt/local/lib/ruby/1.9.1/webrick/httpservlet/prochandler.rb:26:in `call'
Run Code Online (Sandbox Code Playgroud) 嗨,我正在使用 R studio 和“knitHTML”按钮将我的 Rmd 文件转换为 html 文件。然而,即使认为代码运行良好,当使用 knitHTML 时,它也找不到我创建的任何本地函数:
错误:找不到函数“xxx”调用:...withCallingHandlers->withVisible->eval->eval->corr
我有以下问题:我有一个存储在我想渲染的数据库中的rhtml(与<%%>和<%=%>标记内的ruby一起拼成的html).通过查询获取信息.我需要能够评估从数据库中获取的信息,就好像它是.erb文件中的正常内容一样.我目前拥有的:
<% @mymods.each do |mod| %>
<%= render_text(mod["html"])%>
<% end %>
Run Code Online (Sandbox Code Playgroud)
其中mod ["html"]是包含rhtml代码的变量,而@mymods是来自查询的对象数组.我目前不知道我应该使用什么功能(render_text当然不起作用).
非常感谢帮助.
/ TZer0
我在Rails中有一个RHTML视图,其输出来自我的MongoDB集合.使用迭代块正确输出数据,但每当我尝试在我的数据库中使用HTML标记时,它们都不会在HTML输出中呈现,而只是显示它们.
<%
@posts.find().each do |post|
%>
<h1><%=post["name"]%></h1>
<p><%=post["body"] %></p>
<p><%=post["timestamp"]%></p>
<%
end
%>
Run Code Online (Sandbox Code Playgroud)
但是,例如,如果我有
<p>Test</p>
Run Code Online (Sandbox Code Playgroud)
在我的数据库中,标记将被渲染,而不是被打印.
我使用包的forceNetwork()
功能创建了蛋白质突变网络 networkD3
.它将在RStudio的"Viewer"窗格中呈现.
然后我可以将其保存为HTML文件,用于共享,保留动态特性(如点击节点,突出显示连接等).
这是我原始数据中前20%的代表,完整的数据看起来更加庞大和复杂.
我需要能够向此forceNetwork添加搜索,以便特定节点可以位于复杂的网络中.通过编辑软件包networkD3和重新打包的副本,可以轻松实现javascript或jquery部分.但我的主要挑战是添加html代码以包含搜索框.
我的主要R代码如下所示:
library(networkD3)
library(XLConnect)
wb <- loadWorkbook("input.xlsx")
nodes <- readWorksheet(wb, sheet="Node", startRow = 1, startCol = 1, header = TRUE)
links <- readWorksheet(wb, sheet="Edges", startRow = 1, startCol = 1, header = TRUE)
fn <- forceNetwork(Links = links, Nodes = nodes,
Source = "Source", Target = "ID", Value = "Combo",
NodeID = "Mutation", linkDistance = JS('function(d){return d.value * 50;}'),
Nodesize = "IF", Group = "Combo", radiusCalculation = JS("d.nodesize+6"),
zoom = T, bounded …
Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我一直在寻找这个问题的解决方案.这是一个简单的烦恼,但我不想知道如何做事......
环境:Ruby,Rails,rhtml
问题:当我在rhtml中迭代一个集合时,我想减少我使用的<%%>和<%=%>标签的数量.以下似乎臃肿:
<% @products.each do |p| %>
<%= @p.name %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
编辑:如何在块内排除<%=%>?
我宁愿这样做:
<% @products.each do |p|
puts @p.name
end %>
Run Code Online (Sandbox Code Playgroud)
某些情况可以允许使用...但是,我知道我可以用jsp做到这一点:
<% for(int i=0; i<10;i++){
System.out.print(i);
} %>
Run Code Online (Sandbox Code Playgroud)
提前感谢您的意见.
我试图告诉ruby如果数据库中没有活动记录,则不运行html和ruby块.下面是我试图运行条件的代码.
<% if @statemant.comments.exists?() do %>
<div id="comments">
<h2>Comments</h2>
<%= render :partial => @statemant.comments %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)