Используйте fields_for
для связанных моделей.
Не должно быть квадратных скобок вокруг параметров fields_for
В вашем примере кода я не могу найти связь между Patient
и Diagnosis
, и множественное число диагноза ставит диагноз , вы можете указать это в config/initializers/inflections.rb
:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'diagnosis','diagnoses'
end
Таким образом, ваша модель Patient
должна содержать
class Patient < ActiveRecord::Base
attr_accessible :age, :name, :city, :street, :number
has_many :diagnoses
end
И вы можете написать в своей форме :
<div class="field">
<%= f.label :content %><br />
<%= f.text_field :content %>
</div>
<%= fields_for(@patient, @patient.diagnoses.build) do |u| %>
<div class="field">
<%= u.label :content %><br />
<%= u.text_field :content %>
</div>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
Я обнаружил, что CodeRush (которым я уже владею) имеет операцию «умной вставки», которая выполняет разумную работу по преобразованию того, что может быть предоставлено. Также в googleplex есть надстройка CR_Paste, которая делает нечто подобное. (надстройка CR_Paste может не требовать Coderush, только бесплатное приложение DXCore.
Поскольку у меня будет полный доступ к дереву синтаксического анализа (и понимание деревьев синтаксического анализа), я могу (и не могу) настроить его для изменения char * в String и т. д. Если я сделаю много настроек, я, вероятно, создам версию с открытым исходным кодом, возможно, на CodePlex.
Ralph
Я должен сказать, что лучший совет, который я могу вам дать, - это переписать приложение. C ++ и C # настолько разные, что если вы уверены, что хотите преобразовать все, то переписывание, скорее всего, будет вашим лучшим вариантом.
Думаю, мой главный вопрос - , почему вы хотите преобразовать этот проект в C # ? Я понимаю, что это не ваш вопрос, но поскольку вы предпринимаете для этого значительные усилия, я надеюсь, что вы понимаете, во что ввязываетесь.
Похоже, вам нужно изменить дизайн приложения, а не просто преобразовать код. Преобразование не-объектно-ориентированного приложения C / C ++ в C # не кажется реалистичной целью.