gautam
March 31, 2010, 10:00am
1
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
March 31, 2010, 2:38pm
2
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
March 31, 2010, 7:35pm
3
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.
gautam
March 31, 2010, 5:41pm
4
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’