Tutorial :rails: “unknown action” message when action is clearly specified


I had hard time to figure out why I've been getting "unknown action" error message when I was do some editing:

Unknown action  No action responded to 11. Actions: bin, create, destroy, edit, index, new, observe_new, show,  tag, update, and vote  

you can see that Rails did mention each action in the above list - update. And in my form, I did specify action = "update".

I wonder if some friends could kindly help me with the missing links...

here is the code:

edit.rhtml    <h1>Editing tip</h1>    <% form_tag :action => 'update', :id => @tip do %>    <%= render :partial => 'form' %>      <p>      <%= submit_tag_or_cancel 'Save Changes' %>    </p>  <% end %>    _form.rhtml    <%= error_messages_for :tip %>    <p><label>Title<br/>  <%= text_field :tip, :title %></label></p>    <p><label>Categories<br/>  <%= select_tag('categories[]', options_for_select(Category.find(:all).collect {|c| [c.name, c.id] }, @tip.category_ids), :multiple => true ) %></label></p>    <p><label>Abstract:<br/>  <%= text_field_with_auto_complete :tip, :abstract %></label></p>    <p><label>Name: <br/>  <%= text_field :tip, :name %></label></p>    <p><label>Link: <br/>  <%= text_field :tip, :link %></label></p>    <p><label>Content<br/>  <%= text_area :tip, :content, :rows => 5 %></label></p>    <p><label>Tags <span>(space separated)</span><br/>  <%= text_field_tag 'tags', @tip.tag_list, :size => 40 %></label></p>    class TipsController < ApplicationController   before_filter :authenticate, :except => %w(index show)      # GET /tips    # GET /tips.xml    def index      @tips = Tip.all      respond_to do |format|        format.html # index.html.erb        format.xml  { render :xml => @tips }      end    end      # GET /tips/1    # GET /tips/1.xml    def show      @tip = Tip.find_by_permalink(params[:permalink])      respond_to do |format|        format.html # show.html.erb        format.xml  { render :xml => @tip }      end    end      # GET /tips/new    # GET /tips/new.xml   def new      @tip = session[:tip_draft] || current_user.tips.build    end     def create      #tip = current_user.tips.build(params[:tip])        #tipMail=params[:email]      #if tipMail       #  TipMailer.deliver_email_friend(params[:email], params[:name], tip)      #  flash[:notice] = 'Your friend has been notified about this tip'      

Next Post »