Страница индекса индекса Ruby, даже если ноль, в настоящее время получает неопределенную ошибку - PullRequest
0 голосов
/ 05 февраля 2019

Привет, я пытаюсь получить свою страницу индекса для PROPERTY'S, чтобы показать, какие арендаторы находятся в текущем свойстве.

Я заставил ее работать на моей странице show.html, выполнив следующую команду:

    .wrapper_with_padding
      #house.show
        %h1= @house.title
        %p= number_to_currency(@house.price, :unit => "£")
        %p= simple_format(@house.description)
        Occupied: #{@house.occupied}
        %br/
        -if @house.tenant.present?
          Tenant: #{@house.tenant.first_name} #{@house.tenant.last_name}
        -else
          %p= 'No Tenant Assigned'

Как я могу адаптировать этот же подход для моей индексной страницы, это то, что у меня есть в данный момент, но я получаю ошибку 'tenant' undefined.

.wrapper_with_padding
  #houses.clearfix
    - unless @houses.blank?
      - @houses.each do |house|
        %a{ href: (url_for [house])}
          .house
            %p.title= house.title
            %p.postcode= 'Postcode: ' + (house.postcode)
            %p.price= number_to_currency(house.price, :unit => "£") + ' per month'
            -if @house.tenant.present?
              %p.tenant_id= @house.tenant.first_name
            -else
              %p No Tenant Assigned
    - else
      %h2 Add a Property
      %p It appears you have not added any property's

    %button= link_to "New Property", new_house_path

Вот полная трассировка стека

Showing C:/Sites/landlord2/app/views/houses/index.html.haml where line #10 raised:

undefined method `tenant' for nil:NilClass
Rails.root: C:/Sites/landlord2

Application Trace | Framework Trace | Full Trace
app/views/houses/index.html.haml:10:in `block in _app_views_houses_index_html_haml__260246869_75400416'
app/views/houses/index.html.haml:4:in `_app_views_houses_index_html_haml__260246869_75400416'

1 Ответ

0 голосов
/ 06 февраля 2019

Это должно работать:

.wrapper_with_padding
  #houses.clearfix
    - unless @houses.blank?
      - @houses.each do |house|
        %a{ href: (url_for [house])}
          .house
            %p.title= house.title
            %p.postcode= 'Postcode: ' + (house.postcode)
            %p.price= number_to_currency(house.price, :unit => "£") + ' per month'
            -if house.tenant.present?
              %p.tenant_id= house.tenant.first_name
            -else
              %p No Tenant Assigned
    - else
      %h2 Add a Property
      %p It appears you have not added any property's

    %button= link_to "New Property", new_house_path

Обратите внимание, что, хотя я не исправил ни одной из других ошибок, вам, вероятно, следует немного прочитать о спецификации Haml.

Вы не понимаетене нужно делать %p= 'No Tenant Assigned', потому что %p No Tenant Assigned работает.

...