Ruby on rails form_for и бесчисленные модели - PullRequest
4 голосов
/ 21 октября 2010
<% form_for(@software) do |f| %>

создает тег формы, который выглядит следующим образом:

<form action="/software.%23%3Csoftware:0x24b2eac%3E" ...

Модель программного обеспечения немного особенная, в том смысле, что я сделал ее бесчисленной (софт мне не подошел)

environment.rb:
ActiveSupport::Inflector.inflections do |inflect|
  inflect.uncountable %w( software )
end

но я назвал единственную форму, чтобы маршруты работали

map.resources :software, :singular => :software_item

Изменение формы_для так:

<% form_for(@software, :url => software_item_path) do |f| %>

выдает правильный вывод, так что, может быть, я говорю о всех несчетных вещах неправильно? Есть ли вообще лучший способ использовать модели с одинаковым словом в единственном и множественном числе?

1 Ответ

2 голосов
/ 19 сентября 2014

Я знаю, что этот вопрос довольно старый, но у меня была похожая проблема в Rails 4.1.В соответствии с Inflection doc , inflect.uncountable должно определять:

[...] неисчислимые слова, которые не следует пытаться склонить.

Однако по какой-то причине этого недостаточно (я погрузлюсь в источник, посмотрю и посмотрю, что происходит, когда у меня будет время)

В любом случае, используя inflect.irregular вместо inflect.uncountable в config/initializers/inflections.rb кажется, делает трюк

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.irregular 'software', 'software'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...