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