Вы можете добиться этого, используя вложенные атрибуты:
Patient.rb
class Patient < ActiveRecord::Base
attr_accessible :age, :name, :pretreatments_attributes, :diagnosiss_attributes
has_many :pretreatments
has_many :diagnosiss
accepts_nested_attributes_for :pretreatments
accepts_nested_attributes_for :diagnosiss
end
Patient_controller.rb
def show
@patient = Patient.find(params[:id])
@patient.pretreatments.build
@patient.diagnosiss.build
respond_to do |format|
format.html # show.html.erb
format.json { render json: @patient }
end
end
пациентов / show.html.erb:
<%= form_for @patient do |f|%>
<h3>Pretreatments:</h3>
<%= f.fields_for :pretreatments do |field| %>
<%= field.label "Content" %></div>
<%= field.text_field :content %>
<% end %>
<h3>Diagnosis:</h3>
<%= f.fields_for :diagnosiss do |field| %>
<%= field.label "Content" %></div>
<%= field.text_field :content %>
<% end %>
<%=f.submit %>
<% end %>
И это все
Если вы хотите «заполнить» автосвойство, перейдите к имени переменной и нажмите Alt + Ins и выберите «В свойство с поддерживающими полями» - это приведет к:
private string m_Maxlength;
public string Maxlength
{
get { return m_Maxlength; }
set { m_Maxlength = value; }
}
Или вы можете изменить действующий шаблон (ReShaper -> Живые шаблоны -> Предопределенные шаблоны -> C # -> prop »- затем отредактируйте:
public $TYPE$ $NAME$ { get {$END$;} set{;} }
В Visual Studio 2008 фрагменты prop
были изменены на выходные , автоматически реализованные свойства . Чтобы использовать старый фрагмент, который расширяет блоки get
и set
, вам необходимо создать для этого новый фрагмент.
Вот тот, который я создал, он немного более гибкий чем тот, который вам предоставляет Visual Studio по умолчанию:
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>propfull</Title>
<Shortcut>propfull</Shortcut>
<Description>Code snippet for creating a property</Description>
<Author>Andrew Hare</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<Default>String</Default>
<ToolTip>property type</ToolTip>
</Literal>
<Literal>
<ID>fname</ID>
<Default>name</Default>
<ToolTip>field name</ToolTip>
</Literal>
<Literal>
<ID>pname</ID>
<Default>Name</Default>
<ToolTip>property name</ToolTip>
</Literal>
<Literal>
<ID>access</ID>
<Default>public</Default>
<ToolTip>property visibility</ToolTip>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[$type$ $fname$;
$access$ $type$ $pname$
{
get { return this.$fname$; }
set { this.$fname$ = value; }
}$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
ReSharper может взять на себя этот фрагмент свойства. Вы можете посмотреть меню ReSharper | Live Templates ...