Rails如何在订单视图中获取客户名称?

时间:2015-05-27 14:59:49

标签: ruby-on-rails

尝试学习rails,构建非常简单的应用程序。

转到

Array.map

我获得了一位客户的订单清单。为客户存储了一些属性,包括名字和名字。

我尝试使用文本“列出John的订单”创建标题:

// extracts the data entries of each item in the series
var data = series.map(function(item){ return item["data"]; });

function sum(point) {
    return point[0] + point[1];

    // in case point is of arbitrary dimension use Array.reduce:
    // return point.reduce(function(prev, cur){ return prev + cur; }, 0);
}

var sums = data.map(function(arr){
    return arr.map(function(point){
        return sum(point);
    });
});

// sums now contains an array of array of sums
// e.g. [[30600,60800,101100]]

结果是:

<%= link_to 'Show Orders', orders_path %>) 

我做错了什么?

UPD:

嗯,客户和订单实际上是功能和资产的“昵称”(关系是相同的),以便于理解。抱歉令人困惑。

所以,资产控制器显示方法:

<h1>Listing Orders for <%= @customer.try(:name) %></h1>

特征模型:

Listing Orders for

资产模型:

class AssetsController < ApplicationController
before_action :set_asset, only: [:show, :edit, :update, :destroy]

def show
end

private
def set_asset
  @asset = Asset.find(params[:id])
end

2 个答案:

答案 0 :(得分:0)

try返回nil而不是引发异常。因此,customer.name为nil。我相信它不会为所有客户提供。删除尝试并且代码将引发异常作为名称是零

答案 1 :(得分:0)

好的,终于管理好了。有点不同的方法 - 我现在在功能页面上显示资产。

class FeaturesController < ApplicationControll

def show
@assets = Asset.where(feature_id: @feature.id)
end

并在features / show.html.erb

<h2>Assets</h2>
<%= render @feature.assets %>

对我来说似乎总是神奇,但仍然可以像需要一样工作。

现在已关闭。