Показать метод в Rails, не работающий с драгоценным камнем databasedotcom

#ruby-on-rails #ruby-on-rails-4 #salesforce #crud #databasedotcom-gem

#ruby-on-rails #ruby-on-rails-4 #salesforce #crud #databasedotcom-gem

Вопрос:

Я пытаюсь настроить базовый метод show с пользовательским объектом под названием ‘loan’. В моем терминале я вижу, что соответствующий запрос API возвращается с объектом, однако, похоже, я не могу вызвать ни один из его атрибутов в представлении show.html.erb. Я пробовал использовать resources:loans в моем файле маршрутов. Мне удалось вызвать поле Name в объекте loan в представлении marketplace, но, похоже, оно не работает в представлении show.

Я получаю следующую ошибку с приведенным ниже кодом:

 ActionView::Template::Error (undefined method `Name' for nil:NilClass):
  

routes.rb

 match '/loans/:id', to: 'loans#show', :as => 'loan', via: [:get]
  

show.html.erb

 <div class="container content">
  <div class="row">
    <div class="col-md-12">
      <h1><%= @loan.Name %></h1>
    </div>
  </div>
</div>
  

loans_controller.rb

 class LoansController < ApplicationController
  before_filter :authenticate_user!
  include Databasedotcom::Rails::Controller

  def marketplace
    @loans = Loan__c.all
    @accounts = Account.all
  end

  def show
    render layout: 'lender'
    @loan = Loan__c.find(params[:id])
  end 

end
  

marketplace.html.erb

 <h2><%= link_to loan.Name, loan_path(loan) %></h2>
  

Комментарии:

1. Loan__c Название вашей модели состоит из двух подчеркиваний?

2. @Pavan При использовании salesforce API I вам нужно добавить два символа подчеркивания и c для вызова пользовательского объекта.

Ответ №1:

Ошибка была в макете, который у меня был в контроллере show:

 render layout: 'lender'
  

Я сломал там код ERB.