2

私はレールを初めて使用し、学習を開始するための簡単なサイトを作成しようとしています。ただし、フォームを送信すると、データはデータベースに保存されません。何が悪いのかわからないので、しばらくの間、それを理解しようとしてきました。Rails コンソールでレコードを作成して保存すると、そのレコードがデータベース (およびインデックス ページ) に正常に表示されます。

計算.rb:

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

calculate_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 %>
4

2 に答える 2

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 %>

そして今、それは機能します。素晴らしい。

于 2012-08-11T00:34:55.630 に答える
0

を使用している場合は、構文form_forを使用しますform_for

<%= 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

于 2012-08-11T06:08:48.693 に答える