0

嗨,我是 Rails 的初学者,我不擅长英语。所以如果有一些完全的废话,请理解..

我正在尝试记录每个页面的加载速度和页面持续时间。我在我的“页面”模型中创建了一个数据库“页面”和方法“保存页面”。为了保存在每个页面中,我在应用程序控制器中放置了“savepage”方法。

页面.rb

def self.savepage
    .
    .
    .
end

application_controller.rb

before_filter :dosave
def dosave
    Page.savepage
end

这种格式..

我的问题是 1. 我做得对吗?使用 before_filter 在加载过程的第一个过程中进行保存?2. 加载页面中的所有内容后保存我应该使用什么?3. 用户离开此页面后保存我应该使用什么?

我看到了before_destroy和after_filter,但我找不到它是什么......过滤器是什么意思......什么动作意味着破坏......提前谢谢你!

4

1 回答 1

0

before_filter是在向控制器发出请求之前加载的第一件事。但是您的需求完全不同。从根本上过滤器使用布尔检查。如果某些方法为真,它将运行,否则它可能不会。此过滤器进一步扩展,我们将代码放入该过滤器中。(甚至有时它被认为是最佳实践)。

现在,before_filter :dosave可能是正确的,但它不是了解页面(UI)加载过程的真实方式。我建议您使用 javascript 调用或使用一些手动创建的辅助方法并将其放入视图.erb文件中。

可能这会让您感兴趣
https://github.com/grosser/record_activities
在 ROR 中记录用户活动

什么行动意味着什么?

Action Controller is the C in MVC. After routing has determined which controller to use for a request, your controller is responsible for making sense of the request and producing the appropriate output. Luckily, Action Controller does most of the groundwork for you and uses smart conventions to make this as straightforward as possible.
来源: http: //guides.rubyonrails.org/action_controller_overview.html 我强烈建议您阅读上述文档。这对你来说是非常必要的,它涵盖了你在这里问的话题。` 还有一件事,

什么是行动破坏?

这只是一个动作方法,就像 new 一样。因为,rails 跟随Convention over configuration(以及它的开发者)所以他们放置了一些delete destroy或一些破坏的代码。这使事情变得简单,否则将需要更多配置,这违反了 Rails 策略。

于 2012-10-13T14:43:50.873 回答