Hello there,
I have a TextSnippet model and a corresponding controller that works perfectly fine for creating new instances via html/the browser etc. However, when accessing it via REST/xml the "@text_snippet = TextSnippet.new(params[:text_snippet])" part below leaves an empty @text_snippet, simply because params[:text_snippet] is nil for format.xml requests. Not entirely sure why that is, but the params only contain the following:
format => xml action => create controller => text_snippets user_id => joerg-battermann
... no text_snippets in there?!
I am seriously wondering why... when accessing via the browser and looking at the params value then, I also have
text_snippet => HashWithIndifferentAccess (2 element(s)) ...
which is perfectly right.
Am I missing something?
Here's the controller's create action part:
class TextSnippetsController < ApplicationController # POST /users/1/text_snippets # POST /users/1/text_snippets.xml def create @text_snippet = TextSnippet.new(params[:text_snippet])
respond_to do |format| if @text_snippet.save @user.items << @text_snippet flash[:success] = 'TextSnippet was successfully created.' format.html { redirect_to user_text_snippet_url(@user, @text_snippet) } format.xml { render :xml => @text_snippet, :status => :created, :location => user_text_snippet_url(@user, @text_snippet) } else format.html { render :action => "new" } format.xml { render :xml => @text_snippet.errors, :status => :unprocessable_entity } end end end end
Cheers and thanks, -J