ما هي أفضل طريقة للعودة علامات متعددة من القضبان مساعد ؟

StackOverflow https://stackoverflow.com/questions/112197

  •  02-07-2019
  •  | 
  •  

سؤال

أريد إنشاء حقل مخفي و إنشاء ارتباط في واحد المساعد ثم الإخراج على حد سواء إلى إرب.

<%= my_cool_helper "something", form %>

يجب وضع نتائج

link_to "something", a_path
form.hidden_field "something".tableize, :value => "something"

ما تعريف مساعد تبدو وكأنها ؟ تفاصيل ما link_to و شكل.hidden_field لا يهم حقا.ما يهم هو كيف يمكنني العودة الإخراج من المكالمات.

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

المحلول

هناك عدة طرق للقيام بذلك.

تذكر أن القائمة القضبان المساعدين مثل link_to, الخ, فقط انتاج السلاسل.يمكن لسلسلة السلاسل معا والعودة ذلك (وهو ما أقوم به أكثر من مرة, إذا كانت الأمور بسيطة).

على سبيل المثال:

link_to( "something", something_path ) +  #NOTE THE PLUS FOR STRING CONCAT
form.hidden_field('something'.tableize, :value=>'something')

إذا كنت تفعل الأشياء التي هي أكثر تعقيدا ، يمكنك فقط ضع هذا الكود في جزئية ، وقد المساعد الخاص بك الاتصال render :partial.

إذا كنت تفعل الأشياء أكثر تعقيدا من ذلك ، ثم قد ترغب في النظر في errtheblog هو block_to_partial مساعد وهو بارد جدا

نصائح أخرى

حتى الآن أفضل ما لديك هو:

def my_cool_helper(name, form)
  out = capture { link_to name, a_path }
  out << capture { form.hidden_field name.tableize, value => 'something' }
end

هل هناك طريقة أفضل ؟

إذا كنت ترغب في المخزن المؤقت الإخراج الأخرى التي وبصرف النظر عن سلسلة ثم يمكنك استخدام concat بدلا من +.أرى هذا - http://thepugautomatic.com/2013/06/helpers/

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