当我连接到我自己的服务器(本地)时,我正在尝试做某事。 我从网站上找到了request.env,所以我使用该数组来比较我的IP。
<%
if request.env['HTTP_HOST']!="127.0.0.1"
puts request.env['HTTP_HOST']
else
puts "its Local!"
end
%>
当我在rails3中运行时,我什么都没打印出来...... 我是ruby&amp; rails3 ..
的新手答案 0 :(得分:12)
如果您想在网页中输出,请使用<%= %>
,而不是<% %>
。输出将是表达式的返回值,因此您不需要puts
。
<%=
if request.env['HTTP_HOST']!="127.0.0.1"
request.env['HTTP_HOST']
else
"its Local!"
end
%>
请注意,您也可以使用local?
方法,而不是直接检查环境。
<%=
if request.local?
"its Local!"
else
request.env['HTTP_HOST']
end
%>
如果您喜欢简洁,可以将其作为一行:
<%= if request.local? then "its Local!" else request.env['HTTP_POST'] end %>
为了获得更加简洁的视图,请使用辅助方法:
<%= ip_or_local %>
在匹配的视图助手中放置:
def ip_or_local
if request.local?
"its Local!"
else
request.env['HTTP_HOST']
end
end
对于这个简单的情况,它可能有点矫枉过正,但一般来说,当你开始在视图中看到很多代码时,是时候考虑将某些东西隐藏在助手中了。
答案 1 :(得分:4)
puts
将写入服务器,而不是响应。所以你应该在服务器的日志中查找你的消息。
答案 2 :(得分:1)
您要打印到日志还是视图?
如果你把它分解成单独的erb标签,可能会更清楚。
<% if local? %>
<%= "Text for local" %>
<% else %>
<%= "Text for remote" %>
<% end -%>
您需要使用&lt;%=%&gt;要打印的行的标签和&lt; %%&gt;你想要逻辑的行的标签,比如条件。
如果你是初次使用rails,你应该从头开始查看peepcode rails视频,它们非常便宜,许多rails开发人员都根据其中的内容构建了它们。 Railscasts也是零食大小的小教程,可以轻松地帮助您完成许多基础知识。
推荐阅读:
RUBY: 红宝石镐 红宝石的方式
滑轨: Rails的方式 首先登上铁轨上的红宝石
希望我有所帮助。