【问题标题】:rails form_for creates a new database entry on refresh, without form submitrails form_for 在刷新时创建一个新的数据库条目,没有表单提交
【发布时间】:2011-03-30 15:49:39
【问题描述】:

我是 rails 和 mongodb 的新手,并且有一个尝试创建类别树的简单表单。

每当我刷新页面时,都会将一个新条目放入数据库中。 我没有点击“提交”按钮,只是页面刷新。

表格是这样的

我的模型是

班级活动 包括 MongoMapper::Document 键 :activity_name, :type => 字符串 键 :parent, :type => ObjectId 键:acnestors,数组 时间戳! 结尾

我的路线只有一个活动条目

map.activity '/activity/:activity_id', :controller => 'activities', :action => 'show'

虽然我从表单中调用 create,但我的控制器中的 create 函数是空的。 该表单通过渲染包含在显示页面中,但这无关紧要。

知道为什么页面刷新会充当表单提交吗?

【问题讨论】:

  • 有一个错字:<%= f.submt "add action" %< 应该是:<%= f.submit "add action" %>

标签: ruby-on-rails mongodb form-for


【解决方案1】:

您在表单助手中调用Activity.create。这将在您每次加载页面时创建(在 Rails 意义上,这也会将其保存到数据库中)一个新对象。

【讨论】:

  • 感谢 jdl,我最终得到了 form_for :activity, :url => {:action => "new" } do |f|我希望这是对的,它似乎已经解决了问题。
  • 动作应该被创建。您的新操作应该用于设置您计划在表单中填充的对象(对于编辑操作也是如此,除了它会抓取现有记录而不是实例化新记录)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多