1

私はRailsが初めてで、Webや本を検索しましたが、Railsで作業するときにカスタムフォームを作成する方法を見つけることができませんでした..何が起こるかというと、私は自分のHTMLタグを書くことに慣れていて、それに慣れています. HTML コンポーネントを作成する JSF (JAVA から) のようなライブラリを使用するのは好きではありません。

text_field(:post, :title, :size => 20)
# => <input type="text" id="post_title" name="post[title]" size="20" value="#{@post.title}" />

そう..どうすればそれを行うことができますか..例:私は自分で書きたいと思います

<input type="text" class="myclass" data="mydata" name="how-to-get-the-attribute-name-with-rails" value="how-to-get-value-with-rails" />

どうやってやるの?

4

3 に答える 3

2

作成しているHTMLをより細かく制御したい場合は、content_tag

content_tag :input, "label_name", class: "myclass", data: "mydata", name: "how-to-get-the-attribute-name-with-rails", value: "how-to-get-value-with-rails"

の任意のhtml要素タグを補足できます:input。したがって、代わりにdivが必要な場合は、:divetcを使用してください...

于 2012-11-23T05:19:22.390 に答える
1

上で書いたように、railsのフォームフィールドの名前は次の形式です

name = 'post[name]' i.e. model_name[attribute_name]

したがって、パラメータハッシュには、一括割当:post => {:name => value}を使用できるようにするものが含まれます。ただし、フォームからいくつかの追加パラメーターを取得する場合は、それらをフォームに直接含めて、必要に応じて任意の名前を付けることができます。paramsハッシュで利用できるようになります。


あなたはこれを使って簡単に価値を得ることができますあなたがvalue = <%= @object.attribute_name. %> これまたは何か他のものを知りたいかどうかはわかりません。さらにサポートが必要な場合はお知らせください。

于 2012-11-23T05:50:33.023 に答える
0

Railsフォーム内にhtmlを書くだけなので、

<input type="text" class="myclass" data="mydata" name="how-to-get-the-attribute-name-with-rails" value="how-to-get-value-with-rails" />

は完全に有効ですが、名前とIDを正しい方法で使用して、バックエンドコントローラーに自動的にバインドする必要があることに注意してください。

結局のところ、text_field(:post, :title, :size => 20)パラメーターを純粋なHTMLに変換するのです(Railsではヘルパーメソッドと呼びます)。

formhelperオプションについては、こちらをお読みください(ヘルパーを使用すると、コードがクリーンに保たれます)。

于 2012-11-23T05:16:01.313 に答える