- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 application_controller 方法:
def current_account
@current_account ||= Account.find_by_subdomain(request.subdomain)
end
我应该使用 before_filter 还是 helper_method 来调用它?两者有什么区别,在这种情况下我应该考虑哪些权衡?
谢谢。
更新以获得更好的清晰度
我发现我可以使用 before_filter
而不是 helper_method
因为我可以从我的 View 中调用 Controller 定义的方法。也许这是我安排代码的方式,所以这就是我所拥有的:
controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
before_filter :current_account
helper_method :current_user
end
helpers/sessions_helper.rb
module SessionsHelper
private
def current_account
@current_account ||= Account.find_by_subdomain(request.subdomain)
end
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def logged_in?
if current_user
return true
else
return false
end
end
end
controllers/spaces_controller.rb
class SpacesController < ApplicationController
def home
unless logged_in?
redirect_to login_path
end
end
end
views/spaces/home.html.erb
<%= current_account.inspect %>
理论上,这应该行不通,对吧?
最佳答案
使用 before_filter 和 helper_method 之间没有关系。当你的 Controller 中有一个方法想要在 View 中重用时,你应该使用 helper 方法,如果你需要在 View 中使用它,这个 current_account 可能是 helper_method 的一个很好的例子。
关于ruby-on-rails - 我什么时候应该使用 before_filter 和 helper_method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038350/
我想知道为什么有人应该在 Controller 中使用 helper_method 来创建帮助器方法,而不是在帮助器文件中创建“正常”方式。这样做有什么好处和坏处? 最佳答案 helper_metho
我已经在应用程序 Controller 中设置了一个辅助方法,即。 class ApplicationController #error undefined method `first_name'
好的,所以我在应用程序 Controller 中有一个辅助方法: def run_test(test_name) #computation stuff render :partial => t
当允许 Controller 方法作为 View 中的助手时,您如何传递参数? 在我的 example_controller.rb 我有 class ExampleController < Appli
我有以下 application_controller 方法: def current_account @current_account ||= Account.find_by_subdo
helper_method 很简单:它使 Controller 的部分或全部方法可供 View 使用。 什么是帮助器?是否相反,即它将辅助方法导入到文件或模块中? (也许名称 helper 和 hel
我正在尝试使用门卫将 oAuth2.0 集成到我的仅 rails-api 应用程序中。但我不断收到此错误,“ApplicationController 的未定义方法 `helper_method'”,
我在 ApplicationController 中有这个: class ApplicationController 我应该如何编写方法才能在 View 中执行此操作: 最佳答案
我有以下 Controller : class FirstController < ApplicationController helper_method :contoller_method pr
它们似乎无法从 ActionView::TestCase 访问 最佳答案 没错,辅助方法不会在 View 测试中公开 - 但它们可以在您的功能测试中进行测试。由于它们是在 Controller 中定义
我是一名优秀的程序员,十分优秀!