2013-05-31 51 views
0

我剛剛開始使用rails並遇到一些困難。我正在嘗試創建一個基本表單,它將向「主」數據庫添加一個新條目。當我提交表單時,而不是運行「新建」,它似乎試圖運行「更新」,根據文檔應該調用/照片/:編號資源路由鏈接到不正確的行爲

我在瀏覽器上出現的錯誤是

未知的動作

行動 '更新' 無法找到AdminController

控制器:

class AdminController < ApplicationController 
    def index 
    @post = Main.create 
    end 

    def new 

    end 
end 

index.erb。 HTML:

<%= form_for @post, :url => { :action => "new" }, :html => {:class => "nifty_form"} do |f| %> 
    <%= f.text_field :title %> 
    <%= f.text_area :entry, :size => "60x12" %> 
    <%= f.submit "New" %> 
<% end %> 

路線:

Tasks::Application.routes.draw do 
    root :to => "Main#index" 

    resources :main 
    resources :admin 
+0

形式是現在的工作,但另一個問題彈出 ' <%= form_for @post,:url => {:action =>「create」},:html => {:class =>「nifty_form」} do | f | %> \t <%= f.text_field:標題%> \t <%= f.text_area:條目,:大小=> 「60x12」 %> \t <%= f.submit 「創建」 %> \t <% end %> ' 它似乎是創建一個空條目,我是否需要將變量傳遞給create方法? '\t def create \t @post = Main.create \t end' – Melbourne2991

回答

2

在Rails new應該顯示形式進入一個新的項目。
edit用於顯示用於編輯現有項目的表單。

表格數據然後是POST如果它是新項目則編輯爲mains_url或者如果它是一個新項目則編號爲PUT
POST被路由到create操作。
PUT被路由到update操作。

所以,要創建一個項目,你必須實現create,更新它,你必須實現update

看到

rake routes