سؤال

  <% form_tag(:action=>'update', :id=>@album.id) do %>

  Title: <%= text_field(:album, :title)  %><br>
  Artist: <%= text_field(:album, :artist)  %><br>
  Genre: <%= text_field(:album, :genre)  %><br>
  Release Date: <%= datetime_select(:album, :release_date, :start_year=>1960) %><br>

  <%= submit_tag("Update") %>

  <% end %>

في المثال أعلاه، الذي يعمل، كان لي أن أقول @ album.id في form_tag ولكن في text_field كان لي أن أقول: الألبوم. وأظل الخلط بين هذه في وجهات نظري ولا تعرف حقا ما إذا كان استخدام علامة @ أو رمزا. هناك قاعدة بسيطة التي يمكن أن تجعل من الواضح ما لاستخدام متى؟

هل كانت مفيدة؟

المحلول

وانا ذاهب تنفجر في الظل هنا للحظة واحدة، ولكن تتحملوني.

أولا، أنا ننصح باستخدام مريحة التوجيه لأن هذا يتيح لك الوصول إلى بعض القضبان طرق وتحسين العمليات مثل أن تكون قادرة على القيام به:

form_for(@album) do |f|

وبعد ذلك العمل إلى أين تريد أن تذهب استنادا إلى حالة #new_record? هذا الكائن.

وثانيا، مع form_for الجديد في مكان، عليك أن تكون قادرا على تجف وجهات نظركم عن طريق القيام:

<%= f.text_field :title %>

وبدلا من:

<%= text_field :album, :title %>

وأخيرا شرح لماذا تم تعريف متغير بعلامة @ قبل في القضبان، المعروف أيضا باسم "المتغيرات سبيل المثال":

وعند تعريف متغير مثيل في القضبان كان متوفرا داخل هذا المثال للطلب بأكمله حيث "المثال" هو ActionController وActionView سلسلة من الأساليب التي تحصل دعا للقيام بكل التقديم وهلم جرا بالنسبة لك. سوف تحدد على أنها متغير مثيل جعلها متاحة في جهاز تحكم، أي طريقة استدعاء بعد تحديده في وحدة تحكم، والمساعدين الخاص بك، وجهات نظركم وجزئيات تقديم إما من وحدات التحكم، والمساعدين أو وجهات النظر.

وأساسا، انها في جميع أنحاء لطلب بأكمله ولكن لا يمكن الوصول إليها داخل النموذج الخاص بك.

والمواصفات المتغيرة الأخرى هي المتغيرات فئة (@@some_useful_thing = 1) والمتغيرات العالمية ($some_other_useful_thing = 1) والثوابت (ALL_IN_UP_CASE = 1).

نصائح أخرى

وهذا الرمز @ قبل اسم متغير يشير إلى متغير مثيل في الفصل الحالي. و: بادئة (القولون) يخلق رمز. في المثال الخاص بك، @album.id يرسل هوية المتغير المثال @album إلى form_tag، مما يسمح form_tag أن نقرأ في هذا الكائن من قاعدة البيانات وتعبئة حقول النموذج مع البيانات المناسبة من هذا الكائن. الرموز التي تمرر في أساليب text_field هي ما form_tag يستخدم للوصول إلى خصائص معينة على الكائن يخلق من قاعدة البيانات. ثم يضع قيم هذه الخصائص في حقول النص التي يولدها.

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