开发者

Where do I put this helper function, in the model or post_helper or?

All my controllers inherit from applicatin_controller.rb, and I added:

helper :all

I want to use this function in my view to make url's like:

/post/some-title

instead of using the ID int he url

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

This is rails 开发者_高级运维3.


Can't you use "to_param" in your model to change that without having to write a helper?

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


It depends on how you want to use it.
If it's in helper, you could call <%= post_path_for post %> in your view.
If it's in model, with small change you could call it like this: <%= post.path %>

Although second way is shorter, I usually put such functions in helpers, for the sake of separation of logic and presentation.


I agree with Nikita. It sounds like a helper to me. I use helpers for anything that is meant for display. It sounds like you want this available to all views. If that is the case, I would place it in helpers/application_helper.rb


+1 for Robin's to_param method. By using to_param, you could use the built-in url helpers (like link_to, url_for, ...natively)

For the other point, you mentioned you put it in controller and wanted to use it in view. You need the following line:

helper_method :post_path_for
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜