My ajax stopped working when I switched to using respond_with. For my Votes, I have the create action and the corresponding create.js.erb, and respond_to :html, :js, :xml in the controller. Heres the log when I try and create a vote:
Started POST "/stories/3-asdfasdf1111/votes" for 127.0.0.1 at Fri Jan 14 20:46:36 -0800 2011 Processing by VotesController#create as */* Parameters: {"story_id"=>"3-asdfasdf1111"} SQL (1.9ms) SHOW TABLES SQL (2.0ms) SHOW TABLES SQL (2.5ms) SHOW TABLES User Load (2.4ms) SELECT `users`.* FROM `users` WHERE (`users`.`id` = 3) LIMIT 1 CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE (`users`.`id` = 3) LIMIT 1 Story Load (2.4ms) SELECT `stories`.* FROM `stories` WHERE (`stories`.`id` = 3) LIMIT 1 SQL (0.4ms) BEGIN Vote Load (0.7ms) SELECT `votes`.`id` FROM `votes` WHERE (`votes`.`user_id` = 3) AND (`votes`.`story_id` = 3) LIMIT 1 SQL (1.4ms) ROLLBACK Completed in 1466ms
ActionView::MissingTemplate (Missing template votes/new with {:locale=>[:en, :en], :handlers=>[:builder, :rjs, :rhtml, :erb, :rxml, :haml], :formats=>[:html]} in view paths "/Users/snibble/Projects/Ruby/storychan/app/views", "/ Users/snibble/Projects/Ruby/storychan/vendor/plugins/white_list/app/ views"): app/controllers/votes_controller.rb:16:in `create'
Rendered /opt/local/lib/ruby/gems/1.8/gems/actionpack-3.0.3/lib/ action_dispatch/middleware/templates/rescues/missing_template.erb within rescues/layout (1.0ms)
The votes controller only has the create option:
def create @story = Story.find(params[:story_id]) @vote = @story.votes.create(:user => current_user)
if @vote.errors.empty? && @vote.valid? flash[:notice] = 'Successfully voted!' else flash[:error] = 'You already voted for that story!' end
respond_with @vote end