Если это для приложения интранет, и все клиенты используют DHCP, можно запросить сервер DHCP для MAC-адреса для данного IP-адреса.
Лучшее предположение ...
Ваша функция редактирования правильно определяет @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 = [...]
перед рендерингом редактирования, и все будет хорошо .
Правильно ли @networks_domentic
устанавливается в контроллер? Добавьте <% = @ networks_domestic.inspect%>
прямо перед строкой 52 и посмотрите, что вы получите. Проверьте @ networkd_domestic.nil?
в контроллере и убедитесь, что вы не отправляете nil
в представление.
РЕДАКТИРОВАТЬ:
Если вы посмотрите на исходный код для options_from_collection_for_select
вы увидите, что он вызывает map
для коллекции, которую вы передаете (@networks_domestic в данном случае).