Forum: Ruby on Rails what / when calls create function in an ActionController ?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
--- Z@m --- (Guest)
on 2009-02-27 17:25
(Received via mailing list)
Hi friends ,

i am newbie and was trying to learn rails by following a tutorial
which uses attachment_fu to upload videos .! every thing was working
till i edited something somewhere ! the problem is that nothing
happens when i click the submit button

the new.html.erb is as follows and it displays well too

<h2>Upload Advertisements 1</h2><br />

<% form_for(@advertisement, :html => { :multipart => true }) do |f| %>
  <%= f.error_messages %>
  <table>
    <tr>
      <td><%= f.label :title %>: </td><td><%= f.text_field :title %></
td>
    </tr>
    <tr>
      <td><%= f.label :description %>: </td><td><%=
f.text_area :description %></td>
    </tr>
    <tr>
      <td><%= f.label :advertisement %>: </td><td><%=
f.file_field :uploaded_data %></td>
    </tr>
    <tr><td><%= f.submit 'Submit' %> - <%= link_to 'Back',
advertisements_path %></td></tr>
  </table>

<% end %>

and the create function in the Controller is as follows

def create

    @advertisement = Advertisement.new(params[:advertisement])

    #@advertisement.write_to_log

    if @advertisement.save
       @advertisement.convert
       flash[:notice] = 'Advertisement has been uploaded'
       redirect_to :action => 'index'
    else
       @advertisements = Advertisement.find(:all)
       render :action => 'new'
    end
  end

even deleting the create function , it shows no error but returns to
index page when submit button clicked . it seems that this function is
not called properly

help appreciated
thanks in advance
Starr H. (Guest)
on 2009-02-27 17:37
(Received via mailing list)
> even deleting the create function , it shows no error but returns to
> index page when submit button clicked . it seems that this function is
> not called properly

Have you set up your routes.rb file?

SH
MaD (Guest)
on 2009-02-27 18:20
(Received via mailing list)
http://api.rubyonrails.com/classes/ActionView/Help...

example taken form the above link:
  # Note: a @person variable will have been created in the controller.
  # For example: @person = Person.new
  <% form_for :person, @person, :url => { :action => "create" } do |f|
%>
    <%= f.text_field :first_name %>
    <%= f.text_field :last_name %>
    <%= submit_tag 'Create' %>
  <% end %>

what you got is this:
  <% form_for(@advertisement, :html => { :multipart => true }) do |f|
%>
    <%= f.text_field :title %>
    <%= f.text_area :description %>
    <%# ... %>
  <%= f.submit 'Submit' %>

now try changing your first line to:
  <% form_for :advertisement, @advertisment, :url => { :action =>
"create" }, :html => { :multipart => true } do |f| %>

hope this helps.
--- Z@m --- (Guest)
on 2009-02-28 03:32
(Received via mailing list)
i tried <% form_for :advertisement, @advertisment, :url => { :action
=>
"create" }, :html => { :multipart => true } do |f| %>

but the result is the same !

will on clicking the submit button automatically call the create
function?
how can i know weather it is called or not
--- Z@m --- (Guest)
on 2009-02-28 06:11
(Received via mailing list)
My routes.db

ActionController::Routing::Routes.draw do |map|

  map.resources :advertisements

  map.root :controller => "home"
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end
MaD (Guest)
on 2009-02-28 11:12
(Received via mailing list)
> how can i know weather it is called or not

set a debugger.
This topic is locked and can not be replied to.