标签: erb

Rails ERB <% - ... - %>与<%...%>

可能重复:
rails中的 - %>和%>之间的差异

那么对于ERB文件,<% - ... - %>与<%...%>之间的区别是什么?据我所知,它们的用途相同,但其中一个需要更多的输入.

ruby-on-rails erb

20
推荐指数
1
解决办法
1万
查看次数

在简单的rails应用程序中使用HTML5视频标签

在index.html.erb里面有以下代码

<video width="320" height="240" controls="controls">
      <source src="truffle1.mp4"/>
 Your browser does not support the video tag.
</video>
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里放我的mp4视频文件所以我把它放在几个地方.
接下来,我启动rails服务器并使用Chrome打开索引页面.我看到黑色视频帧,但它没有播放.当我尝试在新窗口中打开视频时 我得到无路由匹配[GET]"/admin/truffle1.mp4"(注意admin只是控制器的命名空间).


好像这是一个rails路由问题......

video html5 routing ruby-on-rails erb

20
推荐指数
2
解决办法
2万
查看次数

调用错误方法时,"未定义的方法`错误'为nil:NilClass"

我目前正在教自己一些RoR和教程,但添加一些更好的布局和引导程序的东西,我遇到了一个我无法弄清楚的问题.

我正在尝试进行验证部分(http://guides.rubyonrails.org/getting_started.html#adding-some-validation),但是当我使用时:

<% @post.errors.any? %>
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

undefined method `errors' for nil:NilClass
Extracted source (around line #9):
<legend><h1>Add Post</h1></legend>

<%= form_for :post, url: posts_path, html: {class: 'form-horizontal'} do |f| %>
      <% if @post.errors.any? %>
        <div id="errorExplanation">
Run Code Online (Sandbox Code Playgroud)

什么都行不通,我甚至复制并粘贴了教程中的部分.

以下是视图的代码:

<p> </p>

<div class="span6"

<fieldset>
    <legend><h1>Add Post</h1></legend>

    <%= form_for :post, url: posts_path, html: {class: 'form-horizontal'} do |f| %>
          <% if @post.errors.any? %>
            <div id="errorExplanation">

                <h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>

                <ul>
                    <% @post.errors.full_messages.each do |msg| %>
                    <li><%= …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails erb

20
推荐指数
1
解决办法
3万
查看次数

Rails ERb最佳实践(<%%> vs <% - %> vs <% - - %>)

当谈到<% %>(评估Ruby代码),<% -%>(评估Ruby代码,抑制尾随换行符)和<%- -%>(评估Ruby代码,抑制尾随换行符和前导空格)时,在Rails中推荐使用ERb是什么?似乎<%- -%>会使输出HTML看起来最好,但<% %>似乎主要是我看到的.

html ruby ruby-on-rails erb evaluate

19
推荐指数
2
解决办法
1万
查看次数

Rails js.erb文件找不到方法"render"

我在Javascript ERB文件中有以下代码:

$(document).ready(function() {
  $("#workout-week").append(
    <%= escape_javascript(render :partial => "show_training_period", :locals => { :period => @period }) %>
  );
});
Run Code Online (Sandbox Code Playgroud)

当我到达视图时,我收到以下错误:

undefined method `render' for #<#<Class:0x00000004e21158>:0x00000005dbfe98>
Run Code Online (Sandbox Code Playgroud)

部分存在,局部变量是非零的.知道为什么会这样吗?

堆栈跟踪:

app/assets/javascripts/slider.js.erb:2:in `evaluate_source'
tilt (1.3.3) lib/tilt/template.rb:209:in `instance_eval'
tilt (1.3.3) lib/tilt/template.rb:209:in `evaluate_source'
tilt (1.3.3) lib/tilt/template.rb:144:in `cached_evaluate'
tilt (1.3.3) lib/tilt/template.rb:127:in `evaluate'
tilt (1.3.3) lib/tilt/template.rb:76:in `render'
sprockets (2.0.3) lib/sprockets/context.rb:175:in `block in evaluate'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `each'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `evaluate'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:171:in `build_dependency_context_and_body'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:135:in `dependency_context'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:194:in `build_dependencies_paths_and_assets'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:141:in `dependency_paths' …
Run Code Online (Sandbox Code Playgroud)

javascript ruby ruby-on-rails erb

19
推荐指数
3
解决办法
2万
查看次数

检查puppet模板中的变量是否为undef

在木偶模板中检查变量是否为undef的正确方法是什么?

在清单中,变量定义如下

$myvar = undef
Run Code Online (Sandbox Code Playgroud)

如何在模板中检查?

是看到以下两个变种

<% if @myvar -%>
<% end -%>
Run Code Online (Sandbox Code Playgroud)

<% if not @myvar.nil? and @myvar -%>
<% end -%>
Run Code Online (Sandbox Code Playgroud)

它们似乎都适用于我的情况,但我想知道第一种方法在某些情况下是否失败?

erb puppet

18
推荐指数
2
解决办法
4万
查看次数

Rails - text_field中的默认值,但仅适用于new_record?

在内容模型上有一个名为的属性slug.在创建新记录时,我想使用帮助程序来填充此字段,但在现有记录上,我想使用数据库中的值.

目前我有:

<% if @content.new_record? %>
  <%= f.text_field :slug, :value => "#{generate_slug(6)}" %>
<% else %>
  <%= f.text_field :slug %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但这似乎有点冗长.这是最好的方式,还是别的办法?(Rails newb只是试图在我不确定的问题上找到"Rails方式")


编辑

我应该注意,帮助程序当前位于/app/helpers/application_helper.rb中已移至内容控制器中的私有操作.大卫的回答很有效.

ruby-on-rails erb

17
推荐指数
1
解决办法
2万
查看次数

通过构建所有asset_path值来避免使用*.js.erb文件

因此,我希望避免使用ERB处理JavaScript文件,这样我就可以获得适当的资产路径,例如图像.

目前,这似乎是流行的方法:

var myImage = "<%= asset_path('my_image') %>";

当然,这需要将文件名更改为"*.erb",以便进行处理.

我更倾向于将ERB丑陋与我项目中的一个点隔离,制作一个清单文件(例如"assets.js.erb")来计算并提供我需要的所有资产路径.

我当然可以通过逐案解决来做到这一点:

ASSETS =
  "my_image": "<%= asset_path('my_image') %>"

window.assetPath = (path) -> ASSETS[path]
Run Code Online (Sandbox Code Playgroud)

但是,我真的宁愿只写一些ERB来递归我的所有内容asset_paths.asset_environment.paths并为我构建一个大的对象文字清单,这样我真正的应用程序JavaScript就可以自信地调用:

var myImage = assetPath('my_image');

关于(1)的任何想法是否有更容易的方法来做我错过的,或者(2)我如何完成对所有潜在有效参数的搜索asset_path

ruby-on-rails erb sprockets asset-pipeline

17
推荐指数
1
解决办法
5210
查看次数

指定格式:使用render_to_string忽略"xml"

我有一个需要将视图呈现为字符串的操作.该视图称为index.xml.erb.我试图用render_to_string来实现这个目的:

my_string = render_to_string(layout: false, format: "xml")
Run Code Online (Sandbox Code Playgroud)

render_to_string是渲染index.html.erb的内容并将其分配给my_string.我错过了什么?

注意:我知道我可以这样做:

my_string = render_to_string(:action => "#{self.action_name}.xml.erb")
Run Code Online (Sandbox Code Playgroud)

但我很好奇为什么"格式"选项不适用于render_to_string.

ruby-on-rails erb actionview actioncontroller ruby-on-rails-3

17
推荐指数
1
解决办法
3533
查看次数

部分引用其他部分的相对路径

我正在使用(主要)部分:

<%= render partial: 'shared/page/head' %>
Run Code Online (Sandbox Code Playgroud)

哪个使用其他(次要)部分:

<head>
  <%= render partial: 'shared/page/head/title' %>
  <%= render partial: 'shared/page/head/meta' %>
  ...
  <%= render partial: 'shared/page/head/fonts' %>
  ...
  <%= render partial: 'shared/page/head/google_analytics' %>
</head>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在使用相app/view对于这些辅助部分的路径,即使它们与主要部分位于同一目录中.

我尝试过使用相对路径:

<%= render partial: 'title' %>
Run Code Online (Sandbox Code Playgroud)

要么

<%= render partial: './title' %>
Run Code Online (Sandbox Code Playgroud)

但是没有工作.

有没有办法让它使用相对路径部分解决部分问题?

ruby-on-rails erb relative-path partial ruby-on-rails-3

17
推荐指数
1
解决办法
4876
查看次数