Action Controller ::MethodNotAllowed

Hi,

Iam getting the following error

ActionController::MethodNotAllowed
Only get, put and delete requests are allowed.

Actually, Iam trying to have multiple actions for a form to create
new record. The actions for the form are cancel, save, publish and
preview.

here’s the config/routes.rb file code snippet for the relevant
controller - Events

map.resources :events, :member => {:manage => :get}, :new => {:preview
=> :post, :publilsh => :post}

The EventsController has functions for new, create, edit, update,
manage, preview and publish.

the new.html.erb snippet is

<% form_for @event, :url => events_path, :html => {:multipart =>
true, :id => “event_form”} do |f| -%>
<%= render :partial => “form”, :locals => {:f => f} %>
<%= link_to image_tag("/images/btn-cancel.png", :border => 0),
dashboard_path, :style => “float:left;” %>
<%= link_to_function image_tag("/images/btn-publish.png", :border =>
0), “publish_event($(this));”, :style => “padding-right:20px;” %>
<%= link_to_function image_tag("/images/btn-preview.png", :border =>
0), “preview_event($(this));”, :style => “padding-right:20px;” %>

<% end -%>

the javascript functions in application.js

function preview_event(element){
element.up(’#event_form’).writeAttribute(‘target’, ‘_blank’);
element.up(’#event_form’).action = “preview”;
element.up(’#event_form’).method = “post”;
element.up(’#event_form’).submit();
element.up(’#event_form’).writeAttribute(‘target’, false);
}

function publish_event(element) {
element.up(’#event_form’).action = “publish”;
element.up(’#event_form’).method = “post”;
element.up(’#event_form’).submit();
}

Iam stuck with the error. Pls help

In routes.rb (for preview & publish), use :any instead of :post, might
work.

Thanks,
Abhinav

अभिनव
http://twitter.com/abhinav

Hi,

Thanks for the reply. But changing from :post to :any didn’t work!!! :
(
Is there some other way in which multiple actions for a form can be
implemented ?
Any other suggestions are welcome.

Nisha.

Hi,

Thanks for the prompt reply, but its not working yet!!! :frowning:
Any other suggestions.

Thanks,
Nisha

You can try :member or :collection depending upon your requirements. For
forms, I guess you should use :member. Read rails guides for more
details

Thanks,
Abhinav

अभिनव
http://twitter.com/abhinav