2012-03-24 11 views
0

Ich arbeite an einer Webanwendung, mit der Benutzer Scavenger Jagden erstellen können. Das Problem ist, ich kann Rails anscheinend nicht davon überzeugen, neue Jagden zu retten. Hier ist mein Setup. Irgendeine Idee, was ich falsch mache?Kann nicht speichern neue Rails 3 ActiveRecord Modell

Modell:

class Hunt < ActiveRecord::Base 
    attr_accessible :name 

    validates :name, :presence => true, 
        :length => { :maximum => 50 } , 
        :uniqueness => { :case_sensitive => false } 
end 

Controller:

class HuntController < ApplicationController 

    def index 
    @title = "All Hunts" 
    @hunts = Hunt.order("name ASC")  
    end 

    def show 
    @hunt = Hunt.find(params[:id]) 
    @title = @hunt.name  
    end 

    def new 
    @hunt = Hunt.new 
    @title = "New Hunt" 
    end 

    def create 
    @hunt = Hunt.new(params[:hunt]) #fixed type (used to be this: Hunt.new(params[:id])) 
    if @hunt.save 
     flash[:success] = "Hunt created!" 
     redirect_to index 
    else 
     @title = "New Hunt" 
     render 'new' 

    end 

    ... 

end 

Ansicht

<h1>Sign up</h1> 

    <%= form_for(@hunt) do |f| %> 

     <div class="field"> 
     <%= f.label :name %><br /> 
     <%= f.text_field :name %> 
     </div> 

     <div class="actions"> 
     <%= f.submit "Sign up" %> 
     </div> 
    <% end %> 

Routen

MyChi::Application.routes.draw do 


    get "hunts/index" 
    get "hunts/new" 
    get "hunts/create" 
    get "hunts/show" 
    get "hunts/list" 
    get "hunts/edit" 
    get "hunts/delete" 

    match '/hunts', :to => 'hunts#index' 

    resource :hunts 

    ..... 

    root :to => "pages#home" 

    match ':controller(/:action(/:id(.:format)))' 

EDIT: Ich sollte erwähnen, dass wenn eine neue Jagd hinzugefügt wird, die App den Benutzer zu Index umleitet, aber es gibt keine Flash-Benachrichtigung über den Erfolg.

Antwort

2

In Ihrer Aktion erstellen, ändern Hunt.new (params [: id]) zu Hunt.new (params [: Jagd])

+0

nicht diese Art Sah. Vielen Dank. Leider ist das nicht der Unruhestifter. Ich habe den Tippfehler behoben, habe aber immer noch das Problem. –

+0

Ihre Controller-Klasse sollte Plural sein "HuntsController", können Sie die Protokolle überprüfen und sehen, ob Sie irgendwelche Fehler bekommen. –

+0

Also ändere ich "HuntController" zu "HuntsController", aktualisierte die Routes-Dateien und startete den Server neu. Leider hat sich das Verhalten meiner App nicht geändert. Irgendwelche anderen Ideen zu was könnte das verursachen? –

Verwandte Themen