【问题标题】:NoMethodError in Flights#show航班中的 NoMethodError#show
【发布时间】:2013-05-20 06:10:10
【问题描述】:

显示第 3 行出现的 app/views/flights/show.html.erb:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.name

Extracted source (around line #3):

1: <p>
2:  <b>Airline Name:</b>

3:  <%= @flight.airline.name %>

当我尝试提交“座位”表单时发生上述错误。

我的航班/节目中有一个“_new_seat”“部分”页面。点击“预订新座位”(提交)时, 它应该重定向到座位/表演,但它没有..

是否需要在飞行控制器中使用额外的方法?...请帮助我。

【问题讨论】:

    标签: ruby-on-rails methods controllers


    【解决方案1】:

    您的@flight 没有关联的airline

    要在没有关联的airline 时消除错误,请编写:

    @flight.airline.try(:name)
    

    关联一个airline。检查您的 @flight 对象属性。

    首先,检查你有这个:

    class Flight < ActiveRecord::Base
      belongs_to :airline
    

    其次,您在飞行实例中正确设置了airline_id

    第三,您有一家航空公司,airline_id 保存在航空公司表中。

    【讨论】:

    • 好吧,我建立了这些关联...航空公司-> :has_many :flights flight-> belongs_to :airline and seat-> belongs_to :flight
    • 好吧,我把所有这些都说对了.. 尝试创建座位而不是航班时出现问题..
    • @flight.airline.try(:name) 会在表单出现后让您的页面出现吗?
    • 您的错误消息说明了另一件事,但是您也可能遇到您提到的问题。
    • 好吧,如果我添加 @flight.airline.try(:name) 我现在什至无法创建航班.. 它显示 nomethod 错误...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多