Ruby on rails 一页三款
我有三个模型(管道、阶段、交易),它们之间有以下关系:Ruby on rails 一页三款,ruby-on-rails,Ruby On Rails,我有三个模型(管道、阶段、交易),它们之间有以下关系: 管道有多个阶段/a阶段属于一个管道 一个阶段有多个交易/一个交易属于一个阶段 首先,我必须创建一个新的管道(这没有问题),当我打开管道时,我必须做四件事(在pipelines show.html.erb中) 添加新阶段 添加新交易 编辑阶段 编辑交易 所以我在谷歌上搜索了几天如何处理这种情况。向管道中添加新的阶段是没有问题的,但我不知道如何在阶段中创建新的交易。我希望你能理解有人能给我一个如何添加我的交易的提示。你应该看看嵌套的属性
- 管道有多个阶段/a阶段属于一个管道
- 一个阶段有多个交易/一个交易属于一个阶段
- 添加新阶段
- 添加新交易
- 编辑阶段
- 编辑交易
所以我在谷歌上搜索了几天如何处理这种情况。向管道中添加新的阶段是没有问题的,但我不知道如何在阶段中创建新的交易。我希望你能理解有人能给我一个如何添加我的交易的提示。你应该看看
嵌套的属性。这有一个很好的解释
嵌套的_属性的基本思想是在模型中执行以下操作:
class Pipeline
has_many :stages
accepts_nested_attributes_for :stages
end
class Stage
belongs_to :pipeline
has_many :deals
accepts_nested_attributes_for :deals
end
class Deal
belongs_to :stage
end
然后以您的形式:
<%= f.fields_for :stages do |b| %>
<%= b.text_field ... %>
<%= b.fields_for :deals do |c| %>
<%= c.text_field ... %>
<% end %>
<% end %>
我建议使用表单对象。查看标题为“提取表单对象”的部分,了解以下内容:
如果您有访问权限,您也可以查看此相关的railscast:我想我是从您的帖子中了解到这一点的,但是您在这里只使用一个表单对吗?我想我需要两个表单(一个用于向管道中添加阶段(已经运行了)还有一个用于向其中一个阶段添加交易。因此,我不知道如何告诉交易控制器新创建的交易属于某个特定阶段。最后,我需要这样一个页面:Pipelinename,然后是所有阶段,在每个阶段下,我要添加/编辑/删除交易。在该页面下方,我要添加/编辑/删除阶段。
class PipelinesController
def new
@pipeline = Pipeline.new
@stage = @pipeline.stages.build
@deal = @stage.deals.build
end
end