Undefined method error

I am getting the following error when trying to link a method in a
view so that it can be called on that very object(id).

undefined method `abc_notice_path’ for #ActionView::Base:0xed65220

Extracted source (around line #25):

22: <%= link_to ‘Edit’, edit_notice_path(@notice) %> |
23: <%= link_to ‘Back’, notices_path %>
24: |
25: <%= link_to ‘Save’, abc_notice_path(@notice) %>

Here is the code for my method.

def abc
@notice = Notice.find(params[:id])
#f = File.new("#{RAILS_ROOT}/public/jar/notice.txt",“w”)
#f.write @notice.title
#f.write @notice.body
#f.write @notice.user_name
#f.close
#send_file("#{RAILS_ROOT}/public/jar/notice.txt")
end

I wonder why i am getting this error. This method is defined in a
controller which was generated through scaffolding and other functions
that were created are working fine.
Please help me. I am a novice to rails. Any help will be highly
appreciated.

Gautam wrote:

I am getting the following error when trying to link a method in a
view so that it can be called on that very object(id).

undefined method `abc_notice_path’ for #ActionView::Base:0xed65220

Extracted source (around line #25):

22: <%= link_to ‘Edit’, edit_notice_path(@notice) %> |
23: <%= link_to ‘Back’, notices_path %>
24: |
25: <%= link_to ‘Save’, abc_notice_path(@notice) %>

Here is the code for my method.

def abc
@notice = Notice.find(params[:id])
#f = File.new("#{RAILS_ROOT}/public/jar/notice.txt",“w”)
#f.write @notice.title
#f.write @notice.body
#f.write @notice.user_name
#f.close
#send_file("#{RAILS_ROOT}/public/jar/notice.txt")
end

I wonder why i am getting this error. This method is defined in a
controller which was generated through scaffolding and other functions
that were created are working fine.
Please help me. I am a novice to rails. Any help will be highly
appreciated.

Hi Gautam,

Please check your routes.rb first, I think u forget to specify the name
of the action in route.

Gautam wrote:

Thanks for your kind reply.
Here is the code of my routes.rb file
Please suggest corrections, if any…

map.resources :notices
map.resources :users, :has_many => :notices
map.resource :session

map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
map.connect ‘/notices/:id/:abc’, :controller => “notices”, :action
=> “abc”

map.root :controller=> ‘welcome’
map.signup ‘/signup’, :controller => ‘users’, :action => ‘new’
map.login ‘/login’, :controller => ‘sessions’, :action => ‘new’
map.logout ‘/logout’, :controller => ‘sessions’, :action =>
‘destroy’
map.create ‘/create’, :controller => ‘notices’, :action => ‘new’

try this out. Change

map.connect ‘/notices/:id/:abc’, :controller => “notices”, :action

=> “abc”

to

map.abc_notice ‘/notices/:id/:abc’, :controller => “notices”, :action

=> “abc”

Then when you call abc_notice_path(4, ‘alphabet’)

Maybe that will help out.

Thanks for your kind reply.
Here is the code of my routes.rb file
Please suggest corrections, if any…

map.resources :notices
map.resources :users, :has_many => :notices
map.resource :session

map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
map.connect ‘/notices/:id/:abc’, :controller => “notices”, :action
=> “abc”

map.root :controller=> ‘welcome’
map.signup ‘/signup’, :controller => ‘users’, :action => ‘new’
map.login ‘/login’, :controller => ‘sessions’, :action => ‘new’
map.logout ‘/logout’, :controller => ‘sessions’, :action =>
‘destroy’
map.create ‘/create’, :controller => ‘notices’, :action => ‘new’

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs