所以我遇到了在更新操作中没有params [:id]值的问题。在Rails 3中,id如何在更新语句中传递
我得到“找不到没有ID的菜单” - 它在表单元素中有一个id =“edit_menu_1”。
如果我运行类似物品的脚手架,这看起来好像它会被更新语句(即POST语句中没有id值)拾取。这是我应该寻找/调试的正确值吗?有没有一个标准的Rails调试技术,我可以为id值(比如正确的id的隐藏表单字段)?
THX
编辑#1 从development.log 脚手架(值id存在):
Parameters: {"utf8"=>"✓", "authenticity_token"=>"HfMoJHPC7oFFYDcmeHh4tVzlRtpreQTYT75L7TDZ3Qs=", "menu"=>{"content"=>"here is my menu - more things for you"}, "commit"=>"Update Menu", "id"=>"1"}
我的应用(值没有id)
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xr82q8+YSj7z1WorVedqUKzEYroycDslMgRqgZf5crQ=", "menu"=>{"name"=>"Bar Menu - some thigs"}, "commit"=>"Update Menu"}
我的形式的代码是:
<%= form_for(@menu , :url => menus_save2_path) do |f| %>
<div><%=f.text_field :name %></div>
- 我该如何强制ID值?
- 有意义,但是如果我查看脚手架代码,则没有隐藏参数的id值。这是自动完成的吗?
显示一些代码... – lucapette
你是否重写了通常的整数'id'字段来包含字符串呢?什么是'id =“edit_menu_1”' - 看起来像是html元素的id,而不是数据库表中的记录ID? – Zabba
正确的,是'form'元素的ID,用于 – timpone