标签: erb

如何在布局之外的erb中包含css或javascript?

很抱歉,因为我正在编写我的第一个rails应用程序.

我了解布局视图,但如果您正在使用它们,是否有任何方法可以包含特定于视图的js或css文件?例如,我有layouts/products.html.erb,并且products/edit.html.erb我想要products_edit.css,但我不希望所有产品视图的css,实现它的最佳实践是什么?

ruby-on-rails erb view

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

Rails button_to - 将css类应用于按钮

这很愚蠢,但我无法弄清楚如何设置由Rails创建的输入元素的样式button_to- 是的,我一遍又一遍地阅读文档并尝试了样本.

这是我的ERB代码:

 <%= button_to "Claim", action: "claim", idea_id: idea.id, remote: true, class: 'btn btn-small'  %>
Run Code Online (Sandbox Code Playgroud)

这会产生以下HTML:

<form action="/ideas/claim?class=btn+btn-small&amp;idea_id=4&amp;remote=true" class="button_to" method="post">
  <div>
    <input data-remote="true" type="submit" value="Claim">
    <input name="authenticity_token" type="hidden" value="pU3umgqrDx3WbalfNK10c9H5B5N4OzPpohs4bWW8mow=">
  </div>
</form>
Run Code Online (Sandbox Code Playgroud)

而我想要的只是input拥有class = "btn btn-small".

救命?谢谢!

forms ruby-on-rails erb button-to

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

在Ruby on Rails html.erb文件中循环

每个人我都是Ruby on Rails的新手,我需要了解一些东西.我有一个实例变量(@users),我需要在html.erb文件中循环它限制次数.我已经用过了:

<% @users.each do |users| %>
   <%= do something %>
<%end %>
Run Code Online (Sandbox Code Playgroud)

但是,我需要将其限制为10次.我能做什么?

html ruby loops ruby-on-rails erb

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

如何在html.erb文件中运行多行Ruby

我正在使用Ruby on Rails,需要在我的一个html.erb文件中运行一段Ruby代码.我是这样做的:

<% def name %>
<% name = username %>
<%= name %>
Run Code Online (Sandbox Code Playgroud)

或者像这样:

<% def name
name = username %>
<%= name %>
Run Code Online (Sandbox Code Playgroud)

谢谢阅读.

ruby ruby-on-rails erb block

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

HAML中的动态类名

有没有更好的方法将以下内容转换为HAML?

<% flash.each do |key, value| %>
  <div class="flash <%= key %>"><%= value %></div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我能做的最好的是:

  - flash.each do |key, value|
    %div{:class => "flash " + key.to_s}= value
Run Code Online (Sandbox Code Playgroud)

但它似乎很尴尬.并且.flash#{ key}= value似乎不对???

haml erb

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

ERB模板删除尾随线

我有一个用于发送电子邮件的ERB模板.

Name: <%= @user.name %>
<% if @user.phone.present? %>
Phone: <%= @user.phone %>
<% end %>
Address: <%= @user.address %>
Run Code Online (Sandbox Code Playgroud)

我试图删除之间的空白行NameAddress何时Phone为空.

返回结果

Name: John Miller 

Address: X124 Dummy Lane, Dummy City, CA
Run Code Online (Sandbox Code Playgroud)

预期结果

Name: John Miller 
Address: X124 Dummy Lane, Dummy City, CA
Run Code Online (Sandbox Code Playgroud)

我试图使用<%--%>标签(删除尾随的新行)没有任何成功.

Name: <%= @user.name %>
<%- if @user.phone.present? -%>
Phone: <%= @user.phone %>
<%- end -%>
Address: <%= @user.address -%>
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

PS:我在Rails 2.3.8上.

注1

现在,我正在使用ruby hackery解决这个问题.

助手方法:

def …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails erb

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

带有Bootstrap的simple_form复选框

我正在使用带有Bootstrap的simple_form,我希望我的"记住我"复选框位于标签的左侧,如Twitter Bootstrap文档中所示:http://twitter.github.com/bootstrap/base- css.html#形式

我的表单代码如下所示:

<%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => { :class => 'well'}) do |f| %>
    <%= f.input :email %>
    <%= f.input :password %>
    <%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable?  %>

    <%= f.button :submit, "Sign In" %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

结果是复选框顶部的"记住我"标签.

我搞砸了什么?

ruby erb simple-form twitter-bootstrap

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

如何在rails(4.1.5)中为yml.erb创建fixtures(对于Devise用户)?

更新3:看起来这是特定于.yml.erb中的灯具 - 即使我没有模板化代码,似乎yml.erb文件中的灯具也没有加载.有一个简单的.yml文件.这可能与设计本身无关.

注意:请参阅更新3注释以了解相关更改

我需要在我的rails应用程序中生成Devise用户.我注意到清除数据库和加载灯具会加载除Devise用户之外的所有其他灯具(Update 3:在.yml.erb文件中).

我已经看到了这个其他线程,但我尝试了所有选项,但似乎仍然没有加载灯具.

# ../fixtures/users.yml.erb
user1:
  email: user1@mysite.com
  name: user1
  encrypted_password: <%= Devise.bcrypt(User, 'passw0rd!') %>
  # also tried encrypted_password: User.new(password_salt: '$2a$10$PoBe1MvkoGJsjMVTEjKqge').send(:password_digest, 'somepassword')
  admin: true
Run Code Online (Sandbox Code Playgroud)

从控制台:

要清除测试db:

$ bundle exec rake db:schema:load RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)

要将灯具加载到测试db中:

$ bundle exec rake db:fixtures:load RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)

在测试中运行rails console(未找到用户,但正在加载其他模型装置,如App):

$ rails c test
Loading test environment (Rails 4.1.5)
irb(main):001:0> User.first
  User Load (0.1ms)  SELECT  "users".* FROM "users"   ORDER BY "users"."id" ASC LIMIT 1
=> nil
irb(main):002:0> App.first
  App Load …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails erb fixtures

23
推荐指数
3
解决办法
9438
查看次数

Rails/ERB中的条件标记包装

在ERB中写这个最可读和/或最简洁的方法是什么?编写我自己的方法并不可取,因为我希望将更清晰的解决方案传播给我公司的其他人.

<% @items.each do |item| %>
  <% if item.isolated? %>
    <div class="isolated">
  <% end %>

    <%= item.name.pluralize %> <%# you can't win with indentation %>

  <% if item.isolated? %>
    </div>
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

==更新==

我使用了Gal的答案的更通用版本,这是与标签无关的.

def conditional_wrapper(condition=true, options={}, &block)
  options[:tag] ||= :div  
  if condition == true
    concat content_tag(options[:tag], capture(&block), options.delete_if{|k,v| k == :tag})
  else
    concat capture(&block)
  end
end
Run Code Online (Sandbox Code Playgroud)

==用法

<% @items.each do |item| %>
  <% conditional_wrapper(item.isolated?, :class => "isolated") do %>
    <%= item.name.pluralize %>
  <% end %> …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails erb

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

如何将data-disable-with上的html设置为rails submit_tag

我有一个使用bootstrap的RoR应用程序.我正在尝试将fontawesome html图标标记应用于submit_tag帮助程序,但似乎不支持它.当我单击提交时,禁用内容只显示为字符串而不是解释为html,尽管它适用于link_to帮助程序.

这是erb:

    <%= form_tag("/home/search", method: "get", class: "form-inline", role: "search", remote: true) do %>
    <div class="form-group">
        <%= text_field_tag(:term, nil, {:class => "form-control", "data-html" => true, :value => @term}) %>
    </div>
    <%= submit_tag "Go!", class: "btn btn-transparent", role: "button", 'data-disable-with' => "<i class='fa fa-spinner fa-spin'></i> Searching...".html_safe %>    
 <% end %>
Run Code Online (Sandbox Code Playgroud)

这就是我点击提交时的样子: 在此输入图像描述

它适用于link_to,但是我无法将text_field_tag中的值传递给link_to,否则,我会对该解决方案感到满意.我真的宁愿避免自己编写.ajax方法并使用javascript来操作按钮值.有关如何使用标准FormHelper标签解决此问题的任何建议?提前谢谢了.

html erb twitter-bootstrap ruby-on-rails-4

22
推荐指数
2
解决办法
9311
查看次数