很抱歉这个半通用的标题,但我对 Rails 还是很陌生,想不出一个简洁的方式来提出这个问题。
我有一个基本的 habtm 模型设置:一个项目有很多资源,一个资源可以有很多项目。我已经正确设置了数据库和模型,并且可以通过控制台完成我需要做的所有事情,但是我无法将其全部转换到视图中。
在show
Project 的视图中,我希望能够创建一个 Resource 并将其自动分配给当前 Project。这是我的基本html:
<p>
<b>Name:</b>
<%=h @project.name %>
</p>
<h2>Equipment</h2>
<ul>
<% @project.resources.each do |r| %>
<li><%=h r.name %></li>
<% end %>
</ul>
<h2>Add A Resource</h2>
<% form_for(@project) do |f| %>
<%= f.error_messages %>
<p>
Resource Name:<br />
<%= f.text_field :resources %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
显然,这种形式行不通,但我不知道下一步该做什么。我搜索了各种示例,但没有找到我想要在这里做的事情。
我想到的一件事是将表单更改为form_for(Resource.new)
并包含@project.id
. 然后当resource_controller
处理表单时,检查该 id 并从那里开始。不过,这似乎是一个丑陋的杂物。