我是rails的新手,并试图建立一个简单的网站来开始学习。但是,当我提交表单时,数据不会保存到数据库中。我真的不确定出了什么问题,我一直试图想出来。如果我在rails控制台中创建一个记录并保存它,那个成功地显示在db(和索引页面)上。
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 :(得分: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 %>
现在它有效。真棒。
答案 1 :(得分: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
是新提交的对象,或者如果已经保存,则会向edit action
发送放置请求