【发布时间】:2014-09-02 00:18:36
【问题描述】:
大家好,提前感谢您的帮助。我正在使用 Rails 构建一种在线游戏。用户界面都应该以一个页面为中心:用户/...我在创建用户之外的对象并与之交互时遇到了问题。例如,在用户页面中,用户应该具有创建堡垒的能力。堡垒当然是它自己的对象,有自己的模型和控制器。如果我尝试在用户页面中使用 form_for 标记创建一个表单来创建堡垒,该表单将无法访问堡垒控制器的 @fort 实例变量并引发错误。为了解决这个问题,我创建了一个名为 _new.html.erb 的堡垒的局部视图,其中包含堡垒形式
这里是:
<h1>Create a New Fort</h1>
<%= form_for(@fort) do |f| %>
<%= render 'shared/error_messages' %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :ownership %>
<%= f.text_field :ownership %>
<div style="display:none;">
<%= f.label :xco %>
<%= f.text_field :xco %>
<%= f.label :yco %>
<%= f.text_field :yco %>
<%= f.label :territory %>
<%= f.password_field :territory %>
</div>
<%= f.submit "Create a Fort" %>
<% end %>
然后我在我的用户 show.html.erb 中呈现该部分:
<%= render "forts/new" %>
当然,将表单移动到部分表单根本没有任何作用,但我希望做的事情是这样的:
<%= render partial: "new", object: @fort %>
我想将 fort 实例变量传递给部分,然后在用户视图中呈现部分。然而,我认识到如上所述传递给局部的变量直接来自呈现局部的视图,并且在实现这一点时,我无所适从。
我已经考虑过关键可能在关联中的某个地方,我一直在网上搜寻相关信息。我的模型设置为一个用户拥有_许多堡垒和一个堡垒属于_一个用户。不知道有没有用。
感谢所有帮助,
谢谢你,
亚历克斯
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rendering partial-views