Rails在帮助文件中查看帮助程序
我可能错过了一些明显的东西,但这就是我想要做的事情。
从视图来看,我正在调用自定义辅助函数
在带有display_services函数的帮助文件中
def display_services html = "" form_for @user do |f| f.text_field ... end html << "" end
我发现form_for方法和f.text_field直接输出到HTML流而没有我喜欢的div包装器。 在display_services中输出所有HTML的正确语法是什么? 在此先感谢您的帮助。
只是对风格的建议,我喜欢做这样的事情:
在你看来:
<% display_services %>
请注意,不再需要=
。 然后帮助程序使用concat()
向页面附加内容,并且put-long-strings-together的内容也已过时:
def display_services concat("") form_for @user do |f| f.text_field ... end concat("") end
将
标记放入帮助程序是否是必要的。 如果你需要一个帮助器来嵌入某个块,你也可以使用一些yield-magic:
def block_helper concat("") yield concat("") end
并在你的视图中使用它 – 当然还有助手:
<% block_helper do %> cool block
<% display_services %> <% end %>
恕我直言,你不应该在Ruby代码中硬编码HTML。 相反,更喜欢局部视图 。
module ServicesHelper def display_services(user) render :partial => "shared/display_services", :locals => {:user => user} end end
事实certificate,我必须做这样的事情
def display_services html = "" html << (form_for @user do |f| f.text_field ... end) html << "" end
注意()包裹在表单块周围。 如果有人有更好的解决方案,请告诉我。