包含来自Ruby on Rails的单独文件中的表单

时间:2012-07-07 13:59:06

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个表单可以在Player

中创建新的/players/new.html.erb
<%= form_for(@player) do |f| %>
  ...
<% end %>

我想在主页中加入。

如果我只是复制粘贴整个表单,我会收到此错误:undefined method model_name'for NilClass:Class`

我可以将表单包含在iframe

<div>
  <iframe src=../players/new.html>
</div>

但是这会显示整个页面的页眉和页脚。

如何直接从文件中包含表单(即没有复制粘贴)?

2 个答案:

答案 0 :(得分:2)

您的form_for要求至少@player出席

如果您真的想在主页上包含该表单,那么在您的家庭控制器操作中初始化新的Player实例:

@player = Player.new

但您必须知道PlayerController(或您为该表单创建的任何控制器)的视图可以依赖于访问PlayerHelper中的帮助程序方法,因此您可能还需要将其包括在内你的HomeHelper

答案 1 :(得分:1)

我会将字段移动到部分字段并重复使用主页和其他页面上的字段。请注意,我们会在form_or中设置网址以使其正常工作。