Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails NoMethodError未定义方法FixNum-Rails 4_Ruby On Rails_Postgresql_Activerecord_Nomethoderror - Fatal编程技术网

Ruby on rails NoMethodError未定义方法FixNum-Rails 4

Ruby on rails NoMethodError未定义方法FixNum-Rails 4,ruby-on-rails,postgresql,activerecord,nomethoderror,Ruby On Rails,Postgresql,Activerecord,Nomethoderror,我有一个代理审查模型和一个代理模型。在agent_review表中有一个名为“reviewer_id”的列,该列是审阅代理的代理的id。我在从id中获取审阅者的姓名时遇到了一个问题。我希望这是有意义的。以下是相关代码。提前谢谢 代理模型 has_many :agent_reviews 代理审查模型 belongs_to :agent 代理审查控制器-索引方法 def index @agent = Agent.find(params[:agent_id]) @agent_revie

我有一个代理审查模型和一个代理模型。在agent_review表中有一个名为“reviewer_id”的列,该列是审阅代理的代理的id。我在从id中获取审阅者的姓名时遇到了一个问题。我希望这是有意义的。以下是相关代码。提前谢谢

代理模型

has_many :agent_reviews
代理审查模型

belongs_to :agent
代理审查控制器-索引方法

def index
   @agent = Agent.find(params[:agent_id])
   @agent_reviews = @agent.agent_reviews.order(created_at: :desc)
end
代理审查/索引

<div class="mega-container"><br>
   <div class="text-center">
      <h1>Agent Reviews</h1>
      <h3><%= @agent.name %></h3>
      <div class="container feedback-index">
         <% @agent_reviews.each do |agent_review| %>
            <div class="row feedback-strip">
               <p>Submitted: <%= agent_review.created_at.strftime('%D @ %I:%M %p') %></p>
               <p>Name: <%= agent_review.agent.name %></p>
               <p class="star-rating" data-score= <%= agent_review.rating %> >Rating: </p>
               <p>Review: <%= agent_review.comment %></p>
            </div><br>
         <% end %>
      </div>
    </div>
  </div>
你想做什么

agent_review.reviewer.name

agent\u review.reviewer\u id
是一个int(即Fixnum),而
agent\u review.reviewer
是您要查找的对象。

agent_review.reviewer.name

agent\u review.reviewer\u id
是一个int(即Fixnum),而
agent\u review.reviewer
是您要查找的对象。

agent\u review.reviewer\u id
返回一个整数(
Fixnum
),并且您不能对
Fixnum
对象调用
name
方法

您的关联存在问题,因为您没有按照rails的方式设置外键。首先,您必须指定在
agent\u review
model中用作外键的列

# in agent_review.rb

belongs_to :agent, foreign_key: 'reviewer_id'
然后试试看

<%= agent_review.agent.name %>

现在,您可以调用
agent\u review.reviewee
,它将为您提供有关被审核人的信息。

agent\u review.reviewer\u id
返回一个整数(
Fixnum
),您不能对
Fixnum
对象调用
name
方法

您的关联存在问题,因为您没有按照rails的方式设置外键。首先,您必须指定在
agent\u review
model中用作外键的列

# in agent_review.rb

belongs_to :agent, foreign_key: 'reviewer_id'
然后试试看

<%= agent_review.agent.name %>

现在,您可以调用
agent\u review.reviewee
,它将为您提供有关被审核人的信息。

您需要先进行循环,因为控制器中未定义
agent\u review

<% @agent_reviews.each do |agent_review| %>
  # YOUR HTML CODE HERE
<% end %>

#你的HTML代码在这里

另外,如果这只是因为它没有包含在内,那么可能是因为
agent\u review.reviewer\u id
返回了一个数字,而不是实际的
reviewer
。您的关联不完整,所以您的意思可能是
agent\u review.agent
?这将为您指明正确的方向!希望这有帮助。

您需要先进行一次循环,因为控制器中未定义
agent\u review

<% @agent_reviews.each do |agent_review| %>
  # YOUR HTML CODE HERE
<% end %>

#你的HTML代码在这里

另外,如果这只是因为它没有包含在内,那么可能是因为
agent\u review.reviewer\u id
返回了一个数字,而不是实际的
reviewer
。您的关联不完整,所以您的意思可能是
agent\u review.agent
?这将为您指明正确的方向!希望这能有所帮助。

您的代理模型有许多代理审查,因此作为@agent\u审查传递到索引的实际上是一个数组,因此您需要在视图中循环通过该数组来访问组成该数组的各个对象。

您的代理模型有许多代理审查,因此,作为@agent\u review传递到索引的内容实际上是一个数组,因此您需要在视图中循环该数组以访问组成该数组的各个对象。

这只会给我一个被审核的代理,而不是审核人。这只会给我一个被审核的代理,不是审稿人。我知道这个问题有点老了,但是如果我需要审稿人的名字(我知道有)和他们正在审核的代理的名字怎么办?你能帮忙吗?@MikeWiesenhart要回答这个问题,我需要知道agent\u reviews表的模式。我为agent\u reviews表添加了模式。谢谢你的帮助@米克维森哈特更新了我的答案。看看是否有帮助。还考虑一下我的回答,如果你还没有的话。谢谢我知道这个问题有点老了,但是如果我需要审查者的名字(我知道有)和他们正在审查的代理的名字怎么办?你能帮忙吗?@MikeWiesenhart要回答这个问题,我需要知道agent\u reviews表的模式。我为agent\u reviews表添加了模式。谢谢你的帮助@米克维森哈特更新了我的答案。看看是否有帮助。还考虑一下我的回答,如果你还没有的话。谢谢