首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 5,用于嵌套资源的简单字段

Rails 5,用于嵌套资源的简单字段
EN

Stack Overflow用户
提问于 2016-11-06 01:14:05
回答 1查看 482关注 0票数 0

我正在努力学习如何使用命名空间的路线。

我有一个叫做建议的模型,还有一个叫做创新的模型。这些协会是:

建议书

代码语言:javascript
复制
has_many :innovations
    accepts_nested_attributes_for :innovations, reject_if: :all_blank, allow_destroy: true

创新

代码语言:javascript
复制
belongs_to :proposal

在我的routes.rb中,我有:

代码语言:javascript
复制
resources :proposals do 
    resources :innovations

在我的提案负责人中,我有:

代码语言:javascript
复制
def new
    @proposal = Proposal.new
    @proposal.innovations.build

    # authorize @proposal
  end

  def edit
    @proposal.innovations_build unless @proposal.innovations

  end

在我的建议表格中,我试图为创新模式嵌套表单字段。

代码语言:javascript
复制
<%= f.simple_fields_for [@proposal, @innovation] do |f| %>
        <%= f.error_notification %>
          <%= render 'innovations/innovation_fields', f: f %>

      <% end %>

      <%= link_to_add_association 'Add another novel aspect', f, :innovations, partial: 'innovations/innovation_fields' %> 
      </div>  

当我尝试这样做时,我会发现一个错误:

代码语言:javascript
复制
undefined method `model_name' for nil:NilClass

当我尝试时,我也会遇到同样的错误:

代码语言:javascript
复制
  <%= f.simple_fields_for [@proposal, @innovations] do |f| %>

有人能看到我需要做什么才能使提案表格包括创新表单字段吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-06 14:33:23

您使用的是嵌套属性,因此在这种特殊情况下,不需要嵌套路由。你可以直接写

代码语言:javascript
复制
<%= f.simple_fields_for @proposal do |f| %>

这将把包含所有创新的表单发布到ProposalsController

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40445039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档