ما هي أفضل طريقة للعودة علامات متعددة من القضبان مساعد ؟
-
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/