如何为模型属性定义方法

时间:2014-11-09 04:27:14

标签: ruby-on-rails

如何定义模型属性的方法。

我有一个标题的图片模型。

Picture.title = "Some title #with a few #hashtags"

我想将这些hashtags链接到标签#show

Picture.title.with_links = "Some title <%= link_to "#with", tag_path(tag) %> a few <%= link_to "#hashtags", tag_path(tag) %>"

这是最好的方法。我在哪里定义方法(with_links)?在Picture.rb?或者Pictures_helper.rb?

1 个答案:

答案 0 :(得分:0)

简而言之,Rails模型无法访问路由。在极少数情况下,可以使用模型内的路线,但在这种情况下,它不适合这样做。

with_links的正确位置为PicturesHelper,因此可以通过with_links(picture)查看。宣言将是:

def with_links(picture)
  out= "Some title "
  out += picture.tags.collect do |tag|
    link_to(tag.name, tag_path(tag))
  end.join(", ")
  raw out
end