首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在show.html.erb中呈现时未定义的局部变量或方法

在show.html.erb中呈现时未定义的局部变量或方法
EN

Stack Overflow用户
提问于 2015-10-20 22:33:39
回答 1查看 961关注 0票数 1

我正在尝试创建一个类似于系统的评论,用户可以在其中添加一个“结果”到“决策”中。

现在,我在“决策”的show.html.erb中呈现了形式和结果,但结果给出了以下错误:#<#:0x007fc6046099e8>的未定义局部变量或方法“结果”

我的代码:

控制器/结果控制器

代码语言:javascript
复制
class OutcomesController < ApplicationController
    def create
        @decision = Decision.find(params[:decision_id])
        @outcome = @decision.outcomes.create(params[:outcome].permit(:actual, :strength, :weakness))
          redirect_to decision_path(@decision)
    end
end

模型/结果

代码语言:javascript
复制
class Outcome < ActiveRecord::Base
  belongs_to :decision
end

模型/决定。

代码语言:javascript
复制
class Decision < ActiveRecord::Base
  has_many :outcomes
end

决定/show.html.erb

代码语言:javascript
复制
    <h1>Decision showpage</h1>

<h2><%= @decision.title %></h2>
<p><%= @decision.created_at %></p>
<p><%= @decision.forecast %></p>
<p><%= @decision.review_date %></p>

<%= render @decision.outcomes %>


<%= link_to "Delete Decision", decision_path(@decision), method: :delete, data: { confirm: "Are you sure?" } %>

<%= render "outcomes/form" %>
<%= render "outcomes/outcome" %>

结果/_form.html.erb

代码语言:javascript
复制
<%= form_for([@decision, @decision.outcomes.build]) do |f| %>
  <%= f.label :actual %>:
  <%= f.text_field :actual %> <br/>

  <%= f.label :strength %>:
  <%= f.text_area :strength %> <br/>

  <%= f.label :weakness %>:
  <%= f.text_area :weakness %> <br/>
  <%= f.submit %>
  <% end %>

结果/_outcome.html.erb

代码语言:javascript
复制
<%= outcomes.actual %>
<%= outcomes.strength %>
<%= outcomes.weakness %>

有人能帮我解释一下为什么会发生这个错误吗?我能做些什么来让它工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 22:43:42

听起来,您可能需要将变量作为参数传递给分部。当您尝试调用outcomes.actual时,它不知道outcomes是什么。您需要将其作为局部变量传递:

<%= render "outcomes/outcome", locals: {outcomes: @decision.outcomes} %>

或者从您的@decision实例变量中获取它:

outcomes/_outcome.html.erb

<%= @decision.outcomes.actual %>

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

https://stackoverflow.com/questions/33247972

复制
相关文章

相似问题

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