Мы решили наш Linux / PHP-подход к проблеме SQL Server, создав новую учетную запись для входа в систему с проверкой подлинности SQL Server вместо проверки подлинности Windows.
В своем блоке each
вы использовали @objective
. Это nil
Использование objective
.
<% @objectives.each do |objective| %>
Objective:
<%= objective.title %>
Key Result:
<% objective.keyresults.each do |keyresult| %>
<%= keyresult.title %>
<% end %>
<% end %>
Чтобы расширить ответ @mechnicov: внутри цикла используйте имя локальной переменной objective
, а не имя переменной экземпляра @objective
. NoMethodError
точно говорит вам, в чем проблема. Объект, для которого вы вызвали метод, равен nil, поскольку он не был определен.
Вот простой пример актуальной проблемы:
[:a, :b, :c].each { |item| print @item.capitalize }
# NoMethodError: undefined method `capitalize' for nil:NilClass
# the instance variable @item is an instance of NilCLass
[:a, :b, :c].each { |item| print item.capitalize }
# ABC=> [:a, :b, :c]
В rails вы определяете переменные экземпляра объекта модели внутри контроллера. Перебирая их в представлении, вы используете локальную переменную, назначенную в вашем цикле.