开发者

How to use a custom helper via the "helper" method in Rails 3?

I'm trying to create a custom helper like this:

# app/controllers/my_controller.rb
class MyCont开发者_开发百科roller < ApplicationController
  helper :my
  def index
    puts foo
  end
end

# app/helpers/my_helper.rb
module MyHelper
  def foo
    "Hello"
  end
end

But, I got the following error:

undefined local variable or method `foo' for #<MyController:0x20e01d0>

What am I missing ?


Generally, I do the opposite: I use controller methods as helpers.

class MyController < ApplicationController
  helper_method :my_helper

  private 
  def my_helper
    "text"
  end
end


Helpers are accessed from the views, not the controllers. so if you try to put the following inside your index template it should work:

#my/index.html.erb
<%= foo %>

If you do want to access something from the controller, then you should use the include syntax instead of helper, but do not name it like a helper module in that case.


How about just including the helper as a mixin in the controller...

class MyController < ApplicationController
  include MyHelper

  def index
    puts foo
  end
end
0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜