我在哪里放置这个辅助函数,在模型或post_helper中?

时间:2011-02-16 02:54:29

标签: ruby-on-rails ruby-on-rails-3

我的所有控制器都继承自applicatin_controller.rb,我添加了:

助手:全部

我想在我的视图中使用此功能来制作网址:

/后/一些标题

而不是使用ID int int url

def post_path_for(post)
    post_path(:id => post.title_parameterize)
end

这是rails 3。

4 个答案:

答案 0 :(得分:4)

您是否可以在模型中使用“to_param”来更改它而无需编写帮助程序?

http://apidock.com/rails/ActiveRecord/Base/to_param

答案 1 :(得分:2)

这取决于您想如何使用它 如果是帮手,您可以在视图中拨打<%= post_path_for post %> 如果它在模型中,只需稍加改动就可以这样称呼:<%= post.path %>

虽然第二种方式较短,但为了逻辑和表现的分离,我通常会将这些功能放在助手中。

答案 2 :(得分:0)

我同意尼基塔的观点。这对我来说听起来像是一个帮手。我使用帮助器来显示任何东西。听起来您希望所有视图都可以使用它。如果是这种情况,我会把它放在helpers / application_helper.rb

答案 3 :(得分:0)

对于Robin的to_param方法,

+1。使用to_param,您可以使用内置网址助手(例如link_tourl_for,...本机)

另一方面,你提到你把它放在控制器中并希望在视图中使用它。您需要以下一行:

helper_method :post_path_for