检查哈希红宝石中的值

时间:2014-10-06 10:38:26

标签: ruby-on-rails-4 hash

当我在控制器中检查我的变量时,它变为如下:

{1=>[#<SurveyAnswer id: 1, survey_subject_respondent_id: 1, survey_question_id: 1, answer_value: "2", comment_value: nil, survey_section_id: 1, survey_instrument_id: 1, survey_competency_id: 1, survey_category_id: 1, survey_id: 1, client_id: 1, client_role_id: 1, created_at: "2014-10-06 07:27:19", updated_at: "2014-10-06 07:27:19">, #<SurveyAnswer id: 2, survey_subject_respondent_id: 1, survey_question_id: 2, answer_value: "3", comment_value: nil, survey_section_id: 1, survey_instrument_id: 1, survey_competency_id: 1, survey_category_id: 1, survey_id: 1, client_id: 1, client_role_id: 1, created_at: "2014-10-06 07:27:20", updated_at: "2014-10-06 07:27:20">], 2=>[#<SurveyAnswer id: 3, survey_subject_respondent_id: 1, survey_question_id: 3, answer_value: "3", comment_value: nil, survey_section_id: 2, survey_instrument_id: 1, survey_competency_id: 1, survey_category_id: 1, survey_id: 1, client_id: 1, client_role_id: 1, created_at: "2014-10-06 07:27:20", updated_at: "2014-10-06 07:27:20">, #<SurveyAnswer id: 4, survey_subject_respondent_id: 1, survey_question_id: 4, answer_value: "1", comment_value: nil, survey_section_id: 2, survey_instrument_id: 1, survey_competency_id: 1, survey_category_id: 1, survey_id: 1, client_id: 1, client_role_id: 1, created_at: "2014-10-06 07:27:20", updated_at: "2014-10-06 07:27:20">], 3=>[#<SurveyAnswer id: 5, survey_subject_respondent_id: 1, survey_question_id: 5, answer_value: "4", comment_value: nil, survey_section_id: 3, survey_instrument_id: 1, survey_competency_id: 1, survey_category_id: 1, survey_id: 1, client_id: 1, client_role_id: 1, created_at: "2014-10-06 07:27:20", updated_at: "2014-10-06 07:27:20">, #<SurveyAnswer id: 6, survey_subject_respondent_id: 1, survey_question_id: 6, answer_value: "3", comment_value: nil, survey_section_id: 3, survey_instrument_id: 1, survey_competency_id: 1, survey_category_id: 1, survey_id: 1, client_id: 1, client_role_id: 1, created_at: "2014-10-06 07:27:20", updated_at: "2014-10-06 07:27:20">]}

由此我必须检查是否存在任何survey_id然后在视图中我必须显示文本&#34;继续&#34;否则我必须将文本显示为&#34;开始&#34;。

我添加了一个循环如下:

<% @survey_answers.each do |survey_answer| %>
  <% if survey_answer.first.present? %>
    <% survey_answer[1].each do |sa| %>
      <% if sa.survey_id.present? %>
        <%= "Continue survey" %>
      <% else %>
        <%= "Start survey" %>
      <% end %>
    <% end %>
  <% end %>
<% end %>

但有了这个,文字被多次显示出来。如何只显示一次

1 个答案:

答案 0 :(得分:0)

请尝试这样:

<% if v.values.flatten.map(&:survey_id).compact!.present? %>
  <%= "Continue survey" %>
<% else %>
  <%= "Start survey" %>
<% end %>