Существует более простой способ избежать сильных параметров вообще, вам просто нужно преобразовать параметры в обычный хеш, как:
unlocked_params = ActiveSupport::HashWithIndifferentAccess.new(params)
model.create!(unlocked_params)
Это, конечно, побеждает цель сильных параметров, но если вы находитесь в такой ситуации, как моя (я делаю свое собственное управление разрешенными параметрами в другой части моей системы), это выполнит свою работу.
С помощью этой формулы будет рассмотрена проблема, выделенная RocketDonkey
=VLOOKUP(TEXT(D1,"#"),$A$1:$B$219,2,FALSE)
Могу ли я выделить небольшой заметный ответ, с которым Барри Гудини пришел в 2012 году:
=VLOOKUP(D1&"",$A$1:$B$219,2,FALSE)
, который действительно работает (для меня в Excel 2010), несмотря на то, что вы имеете дело с числами или сочетанием Числа или текстовые строки.
Престижность Барри, вы действительно Houdini
Проблема в том, что вы не преобразовали значения в столбце A
в числа. Поскольку первые три значения в вашем диапазоне поиска сами являются строками, они соответствуют строковым номерам.
Чтобы исправить, щелкните по одному из чисел в столбце A
, нажмите Ctrl + Space, чтобы выбрать весь столбец, а затем нажмите восклицательный знак и выберите Convert to number
:
[/g0]
После этого вы заметите, что ваши предыдущие значения теперь показывают ошибки, поэтому следуйте одному и тому же процессу, чтобы преобразовать их в числа. Решение @ nutsch не требует изменения ваших данных, поэтому, если тип ваших данных не имеет решающего значения, это также хорошее исправление:)
[/g1]
Ctrl+1
недостаточно, чтобы принудить его к правильному формату. Я полагаю, что это больше связано с базовым представлением числа на системном уровне. Вы также можете использовать трюк Paste-Special-multiply-by-1, но этот способ немного проще.
– RocketDonkey
3 November 2012 в 00:03
Это было большой болью для меня (Excel полна глупых предположений). То, что я делаю, это скопировать весь столбец в текстовый редактор, изменить столбец в соответствии с столбцом поиска и скопировать и вставить данные обратно в столбец. Это хорошо сработало для меня.
=VLOOKUP(D1&"",$A$1:$B$219,2,FALSE)
– barry houdini 3 November 2012 в 00:22