سؤال

أوه، لذا يرجى تحمل معي ... لدي نموذج للحجوزات ونموذج للسائقين. يحتوي السائق على العديد من الحجوزات وحجز ينتمي إلى سائق.

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

الآن هذه هي الطريقة التي قمت بها:

def create
  if params[:booking][:driver].empty? 
    params[:booking][:driver] = nil 
  else
    @driver = Driver.find(:first, :conditions => { :username => params[:booking][:driver] })
    params[:booking][:driver] = @driver
  end

يعمل هذا الرمز بشكل جيد لتقديمه، ولكن عند تحميل النموذج، فإنه يوضح مرجع الكائن (على سبيل المثال. #) وأحتاج إليها لإظهار اسم المستخدم. كيف يمكنني تغيير <٪ = f.text_field: برنامج التشغيل٪> في form_for في طريقة العرض "تحرير" لإذن اسم مستخدم برامج التشغيل؟

هل أذهب في هذه الطريقة الصحيحة، أم أن هناك طريقة سهلة أو قضبان قضبان للقيام بما أحتاج إليه؟

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

المحلول

"ولكن عندما يتم تحميل النموذج" هل تعني متى فشل في إنشاء أو عند التحرير؟ يمكنك نشر نشر التحديث الكامل الخاص بك وإنشاء إجراءات من فضلك.

Params [: الحجز] [: برنامج التشغيل] بدلا من إعداده إلى NIL إذا كان فارغا، فقط اتركه فارغا، لا يوجد كائن ربما لماذا ترى "#"

ما تفعله هنا لا يبدو صحيحا، فمن المحتمل أن يكون أكثر منطقية فقط التمسك بصندوق تحديد برامج التشغيل على أي حال، حيث يكون الحقل هو Driver_ID. إذا كنت ترغب حقا في استخدام مربع نص، فستساعدك؟ مجرد نشر الرمز الخاص بك أولا.

هل رأيت ذلك من قبل؟ يجب أن تساعد في توجيهك أكثر قليلا:

http://railscasts.com/episodes/57-create-model-through-text-field.

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