【发布时间】:2015-04-29 14:05:10
【问题描述】:
我在_form.html.erb 视图中使用form_for,以便按照标准脚手架为编辑和新操作创建表单。
我有一个拥有_many宠物的模型所有者。
我想在我的views/owners/show.html.erb 上添加一个 html 链接,以便为上述主人创建一只新宠物。此链接将指向 pets_controller.rb 的新操作,访问该操作时将呈现 pets/new.html.erb 中的视图
我想要将owner_id 与url 中的链接一起传递给pets_controller.rb 的新操作,然后用作pets/new.html.erb 中的collection_select 的默认值
所以我有一个创建新宠物的链接,但由于该链接位于特定的所有者页面上,我希望创建新宠物的表单已经设置了该所有者,因此用户不必从列表。
这必须在不改变宠物中编辑操作/视图的行为的情况下完成。
我知道我可以传递 GET 参数,然后通过参数在控制器中访问它们,然后在传递给视图的操作中创建变量。然后我可以手动检查默认值并将其设置在视图中。如果这是唯一的解决方案,我在编码方面不需要帮助。
有没有更好的方法来做到这一点?一种我可以传递参数的格式,以便视图只会拾取它们?无需手动编辑我的控制器和视图?
【问题讨论】:
-
我想您可以将
Owner数据放入会话或 cookie 中,然后通过 AJAX 查找在form页面上获取它。虽然看起来很迂回,但我会选择你提供的解决方案。
标签: ruby-on-rails forms ruby-on-rails-4