ERRoR使用/ Forms存储数据而不写入DB

时间:2011-07-20 00:56:07

标签: ruby-on-rails forms sqlite

我在RoR中完成一项简单的任务时遇到了麻烦。我只是希望用户填写表单并单击“下一步”而不将其写入数据库,而不是从表单写入数据库,在下一页上,我将让用户单击“提交”,它将写入DB。

有人可以帮我理解HTTP动词GET,POST等,以及如何将其集成到我的Controller中?我不确定是否需要更改form_for标记中的代码。

我有这样的事情:

<%= form_for(@trek) do |t| %>
.
.
<%= t.submit "Create Trek" %>
</div>
<% end %>

谢谢你们......对于这个试图学习RoR的人来说,所有的帮助都很感激:/

编辑...下面是'创建','新'和'审核'的控制器操作。我希望“审核”操作成为他们可以审核然后提交数据的地方。

def new
  @trek = Trek.new
  @title = "Share Adventures with Friends"
end

def create
  @trek = Trek.new(params[:trek])
  if @trek.save
    flash[:success] = "Congrats!"
  render 'review'
else
  @title = "Share Adventures with Friends"
  render 'new'
end
end

def review
  @trek = Trek.find(params[:id])
end

1 个答案:

答案 0 :(得分:1)

review中,你试图从数据库中提取一些你不想在数据库中存在的东西(因为你还没有保存它,它不在数据库中) 。您可能想要的是:

def review
  @trek = Trek.new(params[:trek])
end

如果您希望该表单提交到form_for而不是review,则还需要修改create

你做的是这样的:

<%= form_for @trek, :url => { :action => :review } do |t| %>
.
.
<%= t.submit "Create Trek" %>
</div>
<% end %>