我想创建一堆的动态辅助方法,像这样的动态辅助方法:创造轨
show_admin_sidebar
show_posts_sidebar
show_users_sidebar
到目前为止,我有这在我的helper.rb文件:
#spits out a partial
def show_sidebar(name, show_sidebar = true)
@content_for_sidebar = render :partial => "partials/#{name}"
@show_sidebar = show_sidebar
end
def show_sidebar?
@show_sidebar
end
在我的应用程序布局文件我有这样的:(NB - 我使用HAML):
- if show_sidebar?
= yield(:sidebar)
这让我说我的VI以下ews:
- show_sidebar(:foo)
- show_sidebar(:bar)
并且这呈现所需的部分。
问题在于,我只能每页添加一个边栏。所以,我想我需要有像show_admin_sidebar,show_foo_sidebar这样的动态方法。
所以我试图做到这一点:
def show_#{name}_sidebar(show_sidebar = true)
@name = name
@content_for_#{@name}_sidebar = render :partial => "partials/#{@name}"
@show_sidebar = show_sidebar
end
,然后在我的布局:
- if show_sidebar?
= yield("{@name}_sidebar")
但Rails不喜欢这样的。
我已经尝试了几乎所有我能想到的在我的帮助文件中,并没有任何工作。
我使用帮助器方法的原因是因为我希望我的内容div是100%的页面宽度,除非存在侧边栏,在这种情况下主要内容会进入较小的div,并且侧边栏内容会进入它自己..
如果我不能得到这个工作的话,我可以很容易地通过只是手动添加谐音解决这个问题,但我想我的头圆这个....
任何人有这种事情的任何经验?
THaNKYOU这么多。这对我来说是新的一步,所以这是一个非常大的帮助。我想我可以从这里找到我的路。 regds steve – stephenmurdoch 2009-12-16 22:28:19