2012-08-11 60 views
2

我是新來的鐵軌,並試圖做一個簡單的網站開始學習。但是,當我提交表單時,數據不會保存到數據庫中。我真的不知道什麼是錯,我一直在試圖弄清楚一段時間。如果我在軌道控制檯中創建一個記錄並保存它,那麼它會成功顯示在數據庫(和索引頁面上)中。鋼軌形式的數據沒有保存到分區

calculate.rb:

class Calculate < ActiveRecord::Base 
    attr_accessible :number, :root 
end 

calculates_controller.rb:

class CalculatesController < ApplicationController 
    def index 
    @calculate = Calculate.all 
    end 

    def new 
    @calculate = Calculate.new 
    end 

    def create 
    @calculate = Calculate.new(params[:calculate]) 
    if @calculate.save 
     redirect_to '/calculates' 
    else 
     render 'new' 
     flash[:notice] = "Didn't work" 
    end 
    end 
end 

new.html.erb:

<%= form_for(@calculate) do %> 
    <%= label_tag(:number, "Enter the number") %> 
    <%= text_field_tag :number %> 
    <%= label_tag(:root, "root") %> 
    <%= text_field_tag :root %> 
    <%= submit_tag("Submit") %> 
<% end %> 
+0

我也有'resources:calculate'在我的route.rb – 2012-08-11 00:27:08

回答

0

如果你正在使用form_for,使用form_for syntax

<%= form_for(@calculate) do |form| %> 
    <%= form.label :number %> 
    <%= form.text_field :number %> 
    <%= form.label :root %> 
    <%= form.text_field :root %> 
    <%= form.submit "Submit" %> 
<% end %> 

這會自動處理路由,如果@calculate是新的對象,將提交給創建或者已保存它,它就會發出PUT請求到edit action

0

啊哈!我將我的視圖更新爲:

<%= form_for @calculate, :url => { :action => "create" } do |f| %> 
    <%= f.label :number %> 
    <%= f.text_field :number %> 
    <%= f.label :root %> 
    <%= f.text_field :root %> 
    <%= submit_tag("Submit") %> 
<% end %> 

現在它可以工作。真棒。