Tba*_*abs 3 ruby haml ruby-on-rails-3
我想使用Ruby方法生成在我的页面中经常出现的标记.本质上,我想做相当于此(ERB文件):
<% def create_button(text) %>
<div class="button"><%= text %></div>
<% end %>
...
<%
create_button("My First Button")
create_button("My Second Button")
# etc.
%>
Run Code Online (Sandbox Code Playgroud)
显然,我的想法是,每当我需要一个按钮时,我就会使用create_button.
我想象的Ruby/HAML解决方案看起来像这样:
def create_button(text)
%div.button text
end
create_button("My First Button")
create_button("My Second Button")
Run Code Online (Sandbox Code Playgroud)
此输出将与第一个块相同.
有没有办法做到这一点?如果没有,最终我正在寻找一种使用Ruby辅助方法生成标记的优雅方法.如果您对如何做到这一点有任何建议,我想听听.我是Rails的新手并不喜欢ERB,但也许我错过了一些东西.无论如何,我愿意接受建议.
您永远不需要在Rails中的视图文件中定义方法.无论语言是ERb,Haml还是其他任何东西都是如此.相反,将方法放在帮助文件中,然后在视图中调用它:
应用程序/佣工/ some_helper.rb
module SomeHelper
def button(text)
content_tag :div, text, :class => :button
end
end
Run Code Online (Sandbox Code Playgroud)
应用程序/视图/不管/ view.html.haml
= button 'My First Button'
= button 'My Second Button'
Run Code Online (Sandbox Code Playgroud)
如果最终需要很多复杂的帮助器,请使用partials,和/或调查Cells gem.
| 归档时间: |
|
| 查看次数: |
1212 次 |
| 最近记录: |