标签: haml

= button_to如果已经是其他形式,则不生成表单

在我的案例中使用相同的形式部分创建和编辑新建和预览.部分看起来有点像这样(我使用HAML)

=form_tag ({:action => params[:action]},  :multipart => true)
  =text_field :newsletter, :title
  =text_area :newsletter, :body
  =file_field :newsletter,:attachment
  -if params[:action] == "preview"
     =button_to "select contacts and send", :action => "contacts"
  =submit_tag "save and preview"
Run Code Online (Sandbox Code Playgroud)

但在html输出中

...
<input type="submit" value="select contacts and send"/>
<input type="hidden" value="rwYnZlEpWV4dR89zjgprEALBYmP0xqM3lnKt9JDLyak=" name="authenticity_token"/>
<input type="submit" value="save and preview" name="commit"/>
...
Run Code Online (Sandbox Code Playgroud)

为什么button_to没有生成按钮形式?

一个解决方案是将按钮保持在局部外,每个窗体只有1个,但是如何在同一个窗体中有2个按钮?

编辑:另一个解决方法是隐藏的复选框,如果按下button_to,则由javascript设置并提交表单,在控制器中将它们分开

forms haml ruby-on-rails

6
推荐指数
1
解决办法
3713
查看次数

rails html helper

我试图弄清楚在其中生成一些html和嵌套内容的最简洁方法.使用HAML.基本上我想做的事情如下:

= block_large
  This is some nested content
Run Code Online (Sandbox Code Playgroud)

这应该产生:

<div class="block large">
  <img src="block_large_carat.gif" class="block_large_carat">
  This is some nested content
</div>
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何实现这一目标.谐音?帮手?我对如何嵌套我想要的任何内容感到困惑.试图保持我的HAML DRY并且不想一遍又一遍地明确声明图像标签.

haml ruby-on-rails partials

6
推荐指数
1
解决办法
2331
查看次数

在SASS中访问Ruby变量(来自模型或控制器)

有没有办法在SASS中访问Ruby变量,还是我必须为它创建一个自定义函数?

我想要做的是为每个用户生成一个样式表,所以在控制器中,我做了类似的事情:

def show
  respond_to do |format|
    format.css{render :partial => "styles"}
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在视图名称_styles.haml我这样做:

:sass
  #header
    :background url(user.banner.url)
Run Code Online (Sandbox Code Playgroud)

这有可能吗?

*显然不是:http://sass-lang.com/docs/yardoc/file.FAQ.html#q-ruby-code

除了我们做的'脏'代码修复之外还有其他方法(我们将_styles部分转换为rhtml然后)

#header {
  background: #efefef url(<%= @company.settings.banner.url %>);
}
Run Code Online (Sandbox Code Playgroud)

haml有这种方法吗?

ruby haml ruby-on-rails sass

6
推荐指数
1
解决办法
2667
查看次数

Haml在布局中渲染多个部分

如何正确缩进代码?

应用程序/视图/布局/ shared.html.haml:

= render :partial => "shared/head"
= yield
= render :partial => "shared/footer"
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _head.html.haml:

!!!XML
!!!1.1
%html{"xml:lang" => "pl", :xmlns => "http://www.w3.org/1999/xhtml"}
  %head
    %title
      some title
  %body
    .container
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ index.html.haml:

%p
  Hello World!
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _footer.html.haml:

.footer
  Some copyright text
Run Code Online (Sandbox Code Playgroud)

呈现的HTML输出:

<!DOCTYPE html> 
<html xml:lang='pl' xmlns='http://www.w3.org/1999/xhtml'> 
  <head> 
    <title> 
      some title
    </title> 
  </head> 
  <body> 
    <div class='container'></div> 
  </body> 
</html> 
<p> 
  Hello World!
</p> 
<div id='footer'> 
 Some copyright text
</div> 
Run Code Online (Sandbox Code Playgroud)

html haml partials partial ruby-on-rails-3

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

将Ruby代码和文字标记与Haml混合使用

如何在HAML中编写此ERB

<%= some_ruby_code %>:
# OR
<%= some_ruby_code %><br />
Run Code Online (Sandbox Code Playgroud)

我可以:

=some_ruby_code + ":"
# and
=some_ruby_code
%br
Run Code Online (Sandbox Code Playgroud)

但我不想在这里连接,我想把它写在内联:

(=some_ruby_code):
# and
(=some_ruby_code)%br
Run Code Online (Sandbox Code Playgroud)

ruby haml ruby-on-rails

6
推荐指数
2
解决办法
8924
查看次数

是否有用于将整个目录从HTML转换为HAML的bash命令?

我正在寻找将整个HTML目录转换为HAML,以便文件具有相同的名称,但具有新的扩展名.

html2haml file.html.erb file.haml
Run Code Online (Sandbox Code Playgroud)

我可以运行一个循环,以便我可以一次性转换所有这些文件,以便名称相同,只是扩展名被更改?

我的文件:

continue_login.html.erb
expired_trial.html.erb
expired_trial.mobile.erb
login.html.erb
login.mobile.erb
recover_password.html.erb
signup.html.erb
trial_expires_soon.html.erb
trial_expires_soon.mobile.erb
Run Code Online (Sandbox Code Playgroud)

bash haml ruby-on-rails html2haml

6
推荐指数
2
解决办法
2300
查看次数

代码块中的Markdown换行符

使用Redcarpet,当我在我的降价中包含类似下面的内容时,它不会考虑任何换行符或缩进.我在线的末尾尝试了两个空格.代码之间的额外行.似乎没什么用.

```xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
   <money>3</money>
</hash>

```
Run Code Online (Sandbox Code Playgroud)

我知道了:

<?xml version="1.0" encoding="UTF-8"?> <hash> <money>3</money> </hash>
Run Code Online (Sandbox Code Playgroud)

以下是Redcarpet设置:

Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true, :fenced_code_blocks => true, :no_intra_emphasis => true, :lax_html_blocks => true)
Run Code Online (Sandbox Code Playgroud)

我需要做些什么来使线条正确断开并保留缩进,就像在这里或在GitHub上一样?

更新 - 源代码如下:

<pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
                &lt;hash&gt;
                &lt;money&gt;3&lt;/money&gt;
                &lt;/hash&gt;  
                </code></pre>
Run Code Online (Sandbox Code Playgroud)

ruby markdown haml redcarpet

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

haml中的Ruby块代码

以下代码正在运行

-@items.each do |item|
 %tr
  %td
   =item.quantity
   times
  %td= item.product.title
 end
Run Code Online (Sandbox Code Playgroud)

但是我想用{ }而不是do ... end.可能吗?

-@items.each { |item|
 %tr
  %td
   =item.quantity
   times
  %td= item.product.title
 }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它会引发异常.我做错了什么?

haml ruby-on-rails-3

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

有条件地测试是否在HAML模板中添加类的简洁方法

可能重复:
如果条件在Haml中为真,则追加类(使用Rails)

我正在使用一个模板,允许您将列表项标记为current(使用class=current),在导航栏中突出显示它.

在HAML中,这看起来像:

%li.current
  Menu item A
%li
  Menu item B
%li
  Menu item C
Run Code Online (Sandbox Code Playgroud)

我在Sinatra视图中有这个代码,并希望以编程方式添加class=current,取决于参数到视图.

我该如何以最好的方式做到这一点?

目前,我这样做:

  - if section == "pages"
    %li.current
      %a{:href => "#pages"} Pages
  - else
    %li
      %a{:href => "#pages"} Pages
Run Code Online (Sandbox Code Playgroud)

这感觉太冗长了.

ruby haml views sinatra

6
推荐指数
1
解决办法
5770
查看次数

简单的HTML预处理器

是否有一个简单的HTML预处理器可用于现有HTML代码,而我不需要修改现有html以符合预处理器语法?

我正在开发一个移动应用程序,其中有几个用html构建的页面,但是我开始遇到这样的问题:在更改类似内容(页眉,页脚等)时,我不想更新每个页面,我不想复制内容并具有不匹配项,而是我想使用具有include方法(类似于php的功能)的预处理器,以便可以包含这些相似的内容。

我看过诸如HAML和Jade之类的东西,但是似乎它们具有严格的语法,您需要遵循缩进以及对HTML进行排序或编辑以在每行中包含管道,否则将无法编译。

就像我说的那样,我已经有html了,我想将HTML剪切并粘贴到不同的文件中,包括它们并坚持该工作流程,因为我认为这是最简单的。

但是,如果有人有其他想法,我也可以解决我的情况,这也受到欢迎。

html haml pug

6
推荐指数
1
解决办法
1677
查看次数