Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 嵌套表单显示的字段太多!Rails初学者_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 嵌套表单显示的字段太多!Rails初学者

Ruby on rails 嵌套表单显示的字段太多!Rails初学者,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,作为Rails初学者,我创建了一个简单的演示应用程序来试验嵌套表单。 但不知何故,我的代码显示了奇怪的副产品: 我唯一的目标是在病人展示页面上为病人创造新的治疗方法,现在 它显示了输入字段,其中包含尚未创建的处理和其他一些疯狂的东西!!我做错了什么?到目前为止,我的步骤是: rails new hama cd hama rails g scaffold Patient name:string rails g model Treatment content:string rake db:

作为Rails初学者,我创建了一个简单的演示应用程序来试验嵌套表单。 但不知何故,我的代码显示了奇怪的副产品:

我唯一的目标是在病人展示页面上为病人创造新的治疗方法,现在 它显示了输入字段,其中包含尚未创建的处理和其他一些疯狂的东西!!我做错了什么?到目前为止,我的步骤是:

rails new hama

cd hama

rails g scaffold Patient name:string

rails g model Treatment content:string

rake db:migrate
患者模型:

attr_accessible :name, :treatments_attributes
has_many :treatments, :dependent => :destroy
accepts_nested_attributes_for :treatments
attr_accessible :content
belongs_to :patient
治疗模式:

attr_accessible :name, :treatments_attributes
has_many :treatments, :dependent => :destroy
accepts_nested_attributes_for :treatments
attr_accessible :content
belongs_to :patient
住院/展示:

 <b>Name:</b>
 <%= @patient.name %>
 </p>

 <p>
 <b>Treatments:</b>
 <%= @patient.treatments.each do |treatment| %>
   <%= treatment.content %>
 <% end %>
 </p>

 <%= form_for @patient do |f| %>
   <%= f.fields_for :treatments do |ff| %>
     <%= ff.text_field :content %>
   <% end %>

   <%= f.fields_for :treatments do |ff| %>
     <%= ff.text_field :content %>
   <% end %>

   <%= f.submit %>
 <% end %>

首先,应从此行中删除
=

<%= @patient.treatments.each do |treatment| %>
所有其他字段都是输出的,因为这是您的代码所要求的。这部分代码将两次显示所有相同字段:

<%= f.fields_for :treatments do |ff| %>
  <%= ff.text_field :content %>
<% end %>

<%= f.fields_for :treatments do |ff| %>
  <%= ff.text_field :content %>
<% end %>


如果一个治疗有两个特定的输入字段,那么需要有两个不同的属性。

您是说它在哪里显示治疗对象的所有内部内容

更改此项:

<%= @patient.treatments.each do |treatment| %>

为此:

<% @patient.treatments.each do |treatment| %>


使用
,加上
=
,意味着将该Ruby行的结果输出到页面上。没有它,Ruby只运行代码。

只有两个新治疗的输入字段!感谢you@EmSta我相应地更新了我的答案。您的代码两次请求所有治疗属性。如果你想要的每个治疗都有两个特定的输入,那么它们每个都需要自己的属性名。问题是,当时我可以更新治疗,但我不想要这个。我的目标是创建两种治疗方法,只需单击一次提交button@EmSta听起来您至少需要两个单独的治疗属性,或者允许用户在单个文本字段中输入(自由格式)多个治疗。无论哪种方式,只需单击一次提交即可保存。对不起,您能给我一个治疗属性的示例吗?为什么它会显示带有尚未创建的治疗的输入字段?我只想要两个新治疗的输入字段