在模型中使用Rails助手

时间:2016-12-20 11:30:29

标签: ruby-on-rails ruby

在我的模型中,我有一个方法,通过将记录状态更改为2来将记录标记为待处理。之后,它会调用另一个控制器中的另一个方法来创建包含已更改记录详细信息的通知。

e.g。

class Page < ActiveRecord::Base

  def pend_page
    self.update(status: 2)
    Notification.create_notification("#{link_to self.title, pages_path(:status => 2)} marked as pending", @current_user)
  end

end

然而,似乎Rails没有传递link_to的帮助程序和模型的路径......因为我收到错误:undefined method 'pages_path' for #<Page:0x007fd15c996c88>

我如何才能使link_topages_path工作?

我正在使用Rails 4.2.5.1

编辑:这是create_notification的样子:

class Notification < ActiveRecord::Base

  belongs_to :user

  def self.create_notification(content, user)
    notification = Notification.new
    notification.content = content
    notification.user_id = user.id
    notification.status = 0
    notification.save
  end

end

1 个答案:

答案 0 :(得分:-1)

这应该放在服务对象或PORO(普通旧ruby对象)中。模型的关注点应该以数据库相关的功能开始和结束,其他任何东西都在错误的位置。