Направляющие: Почему действительно находит (идентификационное) повышение исключением в направляющих? [дубликат]

Путем изменения URL перезаписи на RewriteRule ^(.*)$ index.php?url=$1 [QSA,PT,L]. Это решило мою проблему

116
задан Community 23 May 2017 в 11:47
поделиться

2 ответа

То, что вы сделали, довольно разумно. Несколько дополнительных моментов:

  • Когда Maven получает артефакт от Nexus, артефакт получает имя artifactId-version. GroupId досадно опущен. Итак, когда артефакт перемещается (скажем, копируется в WEB-INF / lib в веб-приложении), ваш файл jar будет читать « gdata-analytics-1.0 ». Обычно это не проблема. Однако, если имя артефакта очень распространено, например, "util", вы можете захотеть включить информацию о группе в artifactId, например, используя groupId " com.google " и artifactId " com.google.gdata-analytics ". Да, повторение раздражает, но дает максимальную ясность в файловой системе и при поиске. На самом деле у меня была проблема, когда два разных groupId имели банку « core-1.0 », и один перезаписывал другой при копировании в каталог lib во время сборки.

  • Я повторяю предложение MattK согласования вашего Maven versionId с той версией, которой широко известен артефакт.

  • Если вы последуете совету Доминика о добавлении в groupId префикса groupId к названию вашей компании (например, acme), это может облегчить использование функции маршрутизации Nexus . s способ, которым архитекторы планировали работать find (id), как указано в RDoc:

    Найти по id - это может быть либо конкретный идентификатор (1), либо список идентификаторов (1, 5, 6), либо массив идентификаторов ([5, 6, 10]). Если не может быть найдено ни одной записи для всех перечисленных идентификаторов, то будет сгенерирован RecordNotFound.

    Если вы не хотите, чтобы возникло исключение, используйте find_by_id, который вернет nil, если не может найти объект с указанный идентификатор. Тогда ваш пример будет User.find_by_id (1) .

    s способ, которым архитекторы планировали работать find (id), как указано в RDoc:

    Найти по id - это может быть либо конкретный идентификатор (1), либо список идентификаторов (1, 5, 6), либо массив идентификаторов ([5, 6, 10]). Если не может быть найдено ни одной записи для всех перечисленных идентификаторов, то будет сгенерирован RecordNotFound.

    Если вы не хотите, чтобы возникло исключение, используйте find_by_id, который вернет nil, если не может найти объект с указанный идентификатор. Тогда ваш пример будет User.find_by_id (1) .

    t найти объект с указанным идентификатором. Тогда ваш пример будет User.find_by_id (1) .

    t найти объект с указанным идентификатором. Тогда ваш пример будет User.find_by_id (1) .

208
ответ дан 24 November 2019 в 02:16
поделиться

Further to runako's explanation, it's actually pretty useful to have the choice of whether an exception is raised or not. I'm working on a blog application and I wanted to add support for viewing the next or previous blog entry. I was able to add two instance methods to my Post model that simply return nil when you try to get the previous post when viewing the first post, or the next post when viewing the last post:

def next
  Post.find_by_id(id + 1)
end

def previous
  Post.find_by_id(id - 1)
end

This avoids my helper code which conditionally generates the Previous Post/Next Post links from having to handle the RecordNotFound exception, which would be bad because it would be using an exception for control flow.

-6
ответ дан 24 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

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