1

Rails 3 を使用しており、StatusController に form_for があります。送信ボタンを押しても、作成メソッドが呼び出されません。私の create メソッドには redirect_to :index がありますが、submit を押すとすべての情報がフォームに残り、ページはリダイレクトされません。ただし、オブジェクトはデータベースに正しく保存されます。

これは何が原因でしょうか?

コントローラ:

class StatusController < ApplicationController
  def new
    @status = Status.new
  end
  def create
    @status = Status.new(params[:status])
    @status.date_added = Time.now
    if @status.save
    else
      render 'new'
    end
  end

意見:

.well
  =form_for @status do |f|
    =f.label :user_email
    =f.text_field :user_email

    =f.label :added_by
    =f.text_field :added_by

    =f.label :comments
    =f.text_area :comments
    %br
    %br
    =f.submit

コードをこれに合わせて調整したところ、送信時にデータがフォームから消えますが、「作成」が呼び出されないため、オブジェクトは保存されません。

4

2 に答える 2

0

ここでRubyを勉強しているだけなので間違っているかもしれませんが、ステータスが正しく保存されていればリダイレクトしないようです。

 class StatusController < ApplicationController
  def new
    @status = Status.new
  end
  def create
    @status = Status.new(params[:status])
    @status.date_added = Time.now
    if @status.save
      format.html { redirect_to @status } # Or :index if you want to redirect to index
    else
      render 'new'
    end
  end

もちろん、これらのコントローラー メソッドとビューも作成されていることを確認してください。

于 2012-06-08T22:07:00.353 に答える