سؤال

إليك سؤال كنت أنوي طرحه منذ فترة طويلة، لكنني قبلته للتو باعتباره "سحر ريلز" حتى هذه اللحظة.كما يوضح العنوان، لماذا يبدو مساعد نموذج Rails وكأنه حلقة تنفيذ؟إذا قمت بالتحقق من وثائق القضبان الرسمية, ، لا يبدو أنه يفسر ذلك، بل يتدخل مباشرة من خلال إعطاء ما يلي كمثال أساسي:

<%= form_tag do %>
  Form contents
<% end %>

إذن ما الذي يحدث هنا بالضبط؟لماذا يبدو أن النموذج يقوم بإنشاء حلقة بدلاً من نماذج الإدخال باللغات الأخرى التي لا تحتوي على الحلقة المذكورة.

<%= form_for @person, url: {action: "create"} do |person_form| %>
  <%= person_form.text_field :name %>
  <%= fields_for @person.contact_detail do |contact_details_form| %>
    <%= contact_details_form.text_field :phone_number %>
  <% end %>
<% end %>
هل كانت مفيدة؟

المحلول

هذا ليس "سحر ريلز" ، إنه بناء جملة فانيليا روبي تمامًا. do/end تشير إلى كتلة في روبي، وليس حلقة.

لا تشرح وثائق ريلز هذا، لأن وثائق ريلز تفترض معرفة روبي.لا تقدم ريلز أي بناء جملة جديد (ولا يمكنها ذلك)، إنها مجرد إطار عمل مكتوب بلغة روبي القديمة البسيطة بنسبة 100%.

نصائح أخرى

لأنه يأخذ حجة كتلة.

ليس لها أي علاقة بالتكرار، على سبيل المثال، File#open كما يأخذ كتلة.

#open ينتج الملف المفتوح.ال form_for المساعد ينتج المساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top