রেলের 'form_for ব্যবহার করুন তবে কাস্টম ক্লাস, <ফর্ম> উপাদানটিতে অ্যাট্রিবিউট সেট করবেন?


91

form_forকোনও 'অতিরিক্ত' গুণাবলীর মতো data-fooএ্যাট্রিবিউট বা দ্বিতীয় আর্গুমেন্টের classমতো পাস হয়েছে বলে মনে হচ্ছে ignoreoptions

= form_for @user, {:url => 'foo', :class => 'x', 'data-bar' => 'baz' } do |f|
  # ...

আউটপুট একটি <form>ট্যাগ যা কোনও xশ্রেণি বা data-barবৈশিষ্ট্যযুক্ত নয়।

ঠিক কি?

অথবা, আমি কীভাবে FormBuilderব্যবহার না করে একটি দখল ধরতে পারি form_for?

উত্তর:


194

:htmlহ্যাশ ব্যবহার করুন :

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} do |f|

বা

= form_for @user, html: {class: 'x', data: { bar: 'baz' } } do |f|

4
আমি দেখেছি যে এই কাজ করে না: = form_for @user, :html => {'class' => 'x'} do |f|। classস্ট্রিংয়ের পরিবর্তে একটি প্রতীক হওয়া উচিত।
— ট্র্যান্টর লিউ

11

রেলগুলি 4.0.3, রুবি 2.1.0p0 -> এটি আমার জন্য কাজ করেছে =>

<%= form_for(@contact, :html => {:class => 'form_height'}) do |f| %><% if     @contact.errors.any? %>

4

আমারও একই সমস্যা ছিল তবে আমি আশ্চর্য হয়ে গিয়েছিলাম যে আমার অ্যাপ্লিকেশনটিতে অন্য কোথাও অন্য ফর্মটি ভালভাবে কাজ করছে।

আমি বুঝতে পারি যে আমি দুর্ঘটনাক্রমে অন্য ফর্মের_এর জন্য একটি ফর্ম_এর জন্য যুক্ত করেছি_ যা একবার মুছে ফেলা হলে সমস্যাটি নিরাময় হয়।

দ্বিতীয়ত, আমার যুক্ত করা উচিত যে এই সিনট্যাক্সটি আমার জন্য রেল ৪.২ এ কাজ করে:

<%= form_for @type, html: {class: "form-horizontal"} do |f| %>

আমি এখানে অন্যান্য উত্তরগুলির বিরামচিহ্ন-স্যুপের চেয়ে এটি পছন্দনীয় বলে মনে করি (যা সম্ভবত কোনও পুরানো রেলের সংস্করণের উপর ভিত্তি করে ছিল)।


1

বেশিরভাগ সাহায্যকারীদের ক্ষেত্রে, শেষটিটি উপাদানটির জন্য এইচটিএমএল বিকল্পগুলির একটি হ্যাশ।

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>

অ্যাকশনভিউ :: সহায়তাকারী :: ফর্মহেল্পার ডকুমেন্টেশনে আপনি অন্যান্য বিকল্পগুলিও পরীক্ষা করতে পারেন


1

আমি ভাগ্য ছাড়াই উপরোক্ত চেষ্টা করেছিলাম তবে একটি সমাধান পেয়েছি। আমি রেল ব্যবহার করছি 4.1.6।

এটি কাজ করে না

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>

এটা করেছে

= form_for @user, html: {:class => 'x', 'data-bar' => 'baz'} %>

এইচটিএমএল বিকল্পের সাথে পার্থক্যটি লক্ষ্য করুন, আশা করি এটি সাহায্য করবে


4
বাহ, সত্যি? যারা ঠিক সমতুল্য হওয়া উচিত। আপনি এই পুনরুত্পাদন করতে পারেন? আপনি রুবির কোন সংস্করণ ব্যবহার করছেন?
— অ্যালান এইচ।

@ অ্যালান এইচ। রুবিকে 2.1.3p242 ব্যবহার করে = form_for(:user, :url => login_path, html: {:class => 'login_form'}) do |f| %> এটিই ছিল আমার কোডটি ক্লাসটি প্রয়োগ করবে, অন্যথায় এটি কেবল এটিকে উপেক্ষা করছে।
— ডায়েজ 87

এই দুটি লাইন হুবহু একরকম। অনুমান করছেন আপনি কি মাঝে মাঝে সংরক্ষণ করতে ভুলে গেছেন?
— নাথানভদা

আমি জানি, তাদের হওয়া উচিত। আমার জন্য এটি যদিও কাজ করে না। সংরক্ষণের বিষয়টি ছিল না।
— ডায়েজ 87
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.