Неопределенный метод 'карта' для nil:NilClass

Если это для приложения интранет, и все клиенты используют DHCP, можно запросить сервер DHCP для MAC-адреса для данного IP-адреса.

9
задан Shpigford 12 November 2009 в 17:28
поделиться

2 ответа

Лучшее предположение ...

Ваша функция редактирования правильно определяет @networks_domestic , так что все отлично, пока вы не обнаружите ошибку в функции обновления и не вызовете render : action => "edit" .

Render не вызывает функцию редактирования, а просто отображает вид редактирования. Итак, в случае неудачного обновления вам нужно будет определить @networks_domestic перед возвратом из обновления.

Так, например, у вас есть следующее:

  def edit
    @user = User.find(params[:id])
    @networkd_domestic = [...]
  end

  def update
    @user = User.find(params[:id])

    respond_to do |format|
      if @user.update_attributes(params[:user])
        flash[:notice] = "User was successfully updated."
        format.html { redirect_to(admin_users_url) }
      else
        format.html { render :action => "edit" }
      end
    end
  end

Вы получите сообщение об ошибке описываются, потому что @networkd_domestic не определен в условии ошибки в функции обновления.

Добавьте @networkd_domestic = [...] перед рендерингом редактирования, и все будет хорошо .

18
ответ дан 4 December 2019 в 08:52
поделиться

Правильно ли @networks_domentic устанавливается в контроллер? Добавьте <% = @ networks_domestic.inspect%> прямо перед строкой 52 и посмотрите, что вы получите. Проверьте @ networkd_domestic.nil? в контроллере и убедитесь, что вы не отправляете nil в представление.

РЕДАКТИРОВАТЬ:

Если вы посмотрите на исходный код для options_from_collection_for_select вы увидите, что он вызывает map для коллекции, которую вы передаете (@networks_domestic в данном случае).

6
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: