每个循环的ROR语法错误

时间:2018-03-26 15:20:47

标签: ruby-on-rails

所以我试图在rails中显示数据库中的所有患者。我预计关键字会出错。但就是在这里。

有什么建议吗?

  

/home/ubuntu/workspace/shc-pms/app/views/patients/index.html.erb:16:语法错误,意外的tSYMBEG,期待keyword_do或' {'或'('},方法:删除); @ output_buffer.safe_append =' ^

<div class="patients">
    <% @patients.each do |patient| %>
        <div class="patient">
            <h3><%= link_to patient.name, patient_path(patient) %></h3>
            <p><%= patient.age %></p>
            <!--<p><%= patient.phone %></p>-->
            <!--<p><%= patient.ailment %></p>-->
            <!--<p><%= patient.appointment %></p>-->
            <!--<p><%= patient.status %></p>-->
            <ul class="patient-action">
                <li><%= link_to "Edit", edit_patient_path(patient)  %></li>
                <li><%= link_to "Delete", patient_path(patient), data: {
                    confirm: "Are you sure you want to delete: #{patient.name}?",
                }, method :delete  %></li>
            </ul>
        </div>
    <% end %>
</div>

1 个答案:

答案 0 :(得分:2)

问题是散列键method后面没有冒号。

method :delete替换为method: :delete

外围问题:删除调用以不寻常的方式跨行分割。它不会阻止ruby解释它,但它确实让它更难阅读。我建议将其更改为:

<li>
  <%= link_to(
        "Delete", 
         patient_path(patient), 
         data: {confirm: "Are you sure you want to delete: #{patient.name}?"}, 
         method: :delete
       ) %>
</li>

对于如何做到这一点存在不同意见,但这是我的建议。