# Application.rb methods not accessible

**URL:** <https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986>\
**Category:** Rails\
**Created:** [August 14, 2007, 2:22am UTC](https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986 "2007-08-14T02:22:34Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Glen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/8c91f0/32.png) [@Glen](https://www.ruby-forum.com/u/Glen)\
**Post date:** [August 14, 2007, 2:22am UTC](https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986/1 "2007-08-14T02:22:34Z")

</div>

For some reason I seem to be unable to call methods defined in  
application.rb

All controllers are supposed to inherit from application.rb correct?

I have a bit of code that does some filtering and I want it accessible  
from any controller however when I try to call it, it fails.

---

<div class="post-metadata">

**Author:** ![Glen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/8c91f0/32.png) [@Glen](https://www.ruby-forum.com/u/Glen)\
**Post date:** [August 14, 2007, 3:05am UTC](https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986/2 "2007-08-14T03:05:36Z")

</div>

show how you’ve defined it in application.rb and how you’re calling  
from your controller.

---

<div class="post-metadata">

**Author:** ![Glen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/8c91f0/32.png) [@Glen](https://www.ruby-forum.com/u/Glen)\
**Post date:** [August 14, 2007, 3:20am UTC](https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986/3 "2007-08-14T03:20:37Z")

</div>

application.rb  
def desired\_columns(model, fields, omit = true)  
columns = model.constantize.content\_columns.collect do |  
content\_column|  
if omit  
for field in fields  
if content\_column.name != field  
content\_column  
end  
end  
else  
for field in fields  
if content\_column.name == field  
content\_column  
end  
end  
end  
end

```
return columns.compact!

```

end

Here is where I’m calling it this is in a controller:

def details  
@user = session[:user]

```
@columns = desired_columns("User", ["salt", "hashed_password"])

```

end

---

<div class="post-metadata">

**Author:** ![Glen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/8c91f0/32.png) [@Glen](https://www.ruby-forum.com/u/Glen)\
**Post date:** [August 14, 2007, 10:47pm UTC](https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986/4 "2007-08-14T22:47:07Z")

</div>

that looks correct… make sure your application.rb starts with  
class ApplicationController \< ActionController::Base

and other controllers start with  
class MyController \< ApplicationController

---

<div class="post-metadata">

**Author:** ![Glen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/8c91f0/32.png) [@Glen](https://www.ruby-forum.com/u/Glen)\
**Post date:** [August 15, 2007, 5:53pm UTC](https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986/5 "2007-08-15T17:53:38Z")

</div>

I have this problem too, which I believe I have previously posted here.  
Still no solution.

Glen wrote:

> For some reason I seem to be unable to call methods defined in  
> application.rb
> 
> All controllers are supposed to inherit from application.rb correct?
> 
> I have a bit of code that does some filtering and I want it accessible  
> from any controller however when I try to call it, it fails.

---

<div class="post-metadata">

**Author:** ![Glen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/8c91f0/32.png) [@Glen](https://www.ruby-forum.com/u/Glen)\
**Post date:** [August 15, 2007, 6:30pm UTC](https://www.ruby-forum.com/t/application-rb-methods-not-accessible/111986/6 "2007-08-15T18:30:10Z")

</div>

what version OS/ruby/rails? i’d probably back up my project, nuke  
ruby and rails and reinstall them.

On Aug 15, 11:53 am, Brian A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
