0

导轨控制器:

class VenuesController < ApplicationController

  def new
    @venue = Venue.new
  end

  def create
    @venue = Venue.new(params[:venue])
    if @venue.save
      redirect_to root_path
    end
  end

  def update
    redirect_to search_path
  end

end

导轨形式:

<%= form_for(@venue) do |f| %>

  <%= f.text_field :foursquare_id %>

  <%= f.submit "Save" %>

<% end %>

“foursquare_id”是“venues”表中的一列。通常我从foursquare导入一个foursquare id,但我正在输入文本以进行测试。在我有机会输入表单之前,我被重定向到“root_path”。

我的控制器/表单缺少什么?先感谢您

4

2 回答 2

1

模板表单应该被用作文件名的new操作使用new.html.erb。你应该去/venues/new填写表格。

create操作用于提交已完成的表单,这就是您被重定向的原因。您还应该修改create以处理无法保存的模型:

def create
  @venue = Venue.new(params[:venue])
  if @venue.save
    redirect_to root_path
  else
    render :action => :new
  end
end

或者您可以为此使用简写:

def create
  @venue = Venue.new(params[:venue])
  @venue.save
  respond_with @venue, :location => root_path
end
于 2013-04-25T14:50:40.513 回答
0

您用于创建新场所的表单应该在场所/new.html.erb 中,它将在表单提交时调用您的控制器中的 Create 操作。在这种情况下,您不应该有创建视图。

于 2013-04-25T14:54:29.673 回答