Ruby on rails 控件在RubyonRails中重复
在注册页面上,我为每个用户设置通信首选项,表示其他人如何与该用户联系,例如:Ruby on rails 控件在RubyonRails中重复,ruby-on-rails,Ruby On Rails,在注册页面上,我为每个用户设置通信首选项,表示其他人如何与该用户联系,例如:“电话”、“电子邮件”、“Skype”,在设置页面上,我获取文本字段中的所有通信。如果用户有3种通信方式,即“电话”、“电子邮件”、“Skype”。则会显示如下: Phone: [1234567895] Email: [abc@ab.com] Skype: [abc ] 假设方括号“[]”是文本字段,但它显示如下: Phone: [1234567895] Email: [
“电话”、“电子邮件”、“Skype”
,在设置页面上,我获取文本字段中的所有通信。如果用户有3种通信方式,即“电话”、“电子邮件”、“Skype”。
则会显示如下:
Phone: [1234567895]
Email: [abc@ab.com]
Skype: [abc ]
假设方括号“[]”是文本字段
,但它显示如下:
Phone: [1234567895]
Email: [ ]
Skype: [ ]
Phone: [ ]
Email: [abc@ab.com]
Skype: [ ]
Phone: [ ]
Email: [ ]
Skype: [abc ]
下面是我新的.html.erb设置页面:
<table>
<% if @user_communication.blank? %>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Phone:
</td>
<td style="font-size: large; color: #212121;">
<%= text_field :tf_phone, placeholder: 'Phone' %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Email:
</td>
<td style="font-size: large; color: #212121;">
<%= text_field :tf_email, placeholder: 'Email' %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Skype:
</td>
<td style="font-size: large; color: #212121;">
<%= text_field :tf_skype, placeholder: 'Skype' %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Website:
</td>
<td style="font-size: large; color: #212121;">
<%= text_field :tf_website, placeholder: 'Website' %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Twitter:
</td>
<td style="font-size: large; color: #212121;">
<%= text_field :tf_twitter, placeholder: 'Twitter' %>
</td>
</tr>
<%else %>
<% @user_communication.each do |user_com| %>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Phone:
</td>
<td style="font-size: large; color: #212121;">
<% if user_com.CommunicationMode.to_s == "Phone" %>
<%= text_field_tag :tf_phone, user_com.CommunicationDetail %>
<% else %>
<%= text_field :tf_phone, :placeholder => "Phone" %>
<% end %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Email:
</td>
<td style="font-size: large; color: #212121;">
<% if user_com.CommunicationMode.to_s == "Email" %>
<%= text_field_tag :tf_email, user_com.CommunicationDetail %>
<% else %>
<%= text_field :tf_email,:placeholder => "Email" %>
<% end %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Skype:
</td>
<td style="font-size: large; color: #212121;">
<% if user_com.CommunicationMode.to_s == "Skype" %>
<%= text_field_tag :tf_skype, user_com.CommunicationDetail %>
<% else %>
<%= text_field :tf_skype,:placeholder => "Skype" %>
<% end %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Website:
</td>
<td style="font-size: large; color: #212121;">
<% if user_com.CommunicationMode.to_s == "Website" %>
<%= text_field_tag :tf_website, user_com.CommunicationDetail %>
<% else %>
<%= text_field :tf_website,:placeholder => "Website" %>
<% end %>
</td>
</tr>
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Twitter:
</td>
<td style="font-size: large; color: #212121;">
<% if user_com.CommunicationMode.to_s == "Twitter" %>
<%= text_field_tag :tf_twitter, user_com.CommunicationDetail%>
<% else %>
<%= text_field :tf_twitter, :placeholder => "Twitter" %>
<% end %>
</td>
</tr>
<% end %>
<%end %>
</table>
电话:
电邮:
Skype:
网站:
推特:
电话:
“电话”%>
电邮:
“电子邮件”%>
Skype:
“Skype”%>
网站:
“网站”%>
推特:
“推特”%>
请告诉我哪里出错,等待您的回复。谢谢。你的代码的问题是你在
@user\u communication
中循环,在循环中,你显示了所有的通信。移除循环并将代码更改为以下内容
<tr style="text-align: left; vertical-align: middle;">
<td style="font-size: large; color: #212121;">
Phone:
</td>
<td style="font-size: large; color: #212121;">
<% phone = @user_communication.detect { |uc| uc.CommunicationMode.to_s == 'Phone' } %>
<% if phone %>
<%= text_field_tag :tf_phone, user_com.CommunicationDetail %>
<% else %>
<%= text_field :tf_phone, :placeholder => "Phone" %>
<% end %>
</td>
</tr>
电话:
“电话”%>
然后在每次交流中重复这一点。请记住,不要将该代码放在循环中。我不清楚您的问题:是不是,如何从表单中删除重复的字段?我无法一次向我显示文本字段的电话、电子邮件和Skype值。第一次,它在文本字段中只显示电话值,其他两个文本字段为空;第二次,它在文本字段中只显示电子邮件值,其他两个文本字段为空,与第三次相同:这个问题不清楚!