Gautam1
(Gautam)
March 30, 2010, 11:28pm
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.
11155
(-- --)
March 31, 2010, 12: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.
Gautam1
(Gautam)
March 31, 2010, 3:38pm
3
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'
11155
(-- --)
March 31, 2010, 5:35pm
4
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.