2017-11-20 5 views
0

html.erbファイルの埋め込みルビコードにhtmlオブジェクトプロパティを渡すにはどうすればよいですか?htmlオブジェクトプロパティを埋め込みルビコードに渡す

私は、文字列パラメータを受け入れるルビメソッドAを持っているとします(また、Aの戻り値は文字列です)。私は次のようなシナリオを考えます:

<input type="text" id="t" value="Leaves"> 
<%= A(document.getElementById("t").value) %> 

明らかに私はこのようにコードを書くことはできません。

テキストボックスの値/テキストをメソッドAに渡し、Aの戻り値をhtml本文に出力します。どうやってやるの?

また、テキストボックスの値を継続的にチェックし、Aの戻り値(テキストボックスの現在の値をAに渡すとき)をドキュメントの本文に追加する場合、どうすればよいですか?そして、代わりに、段落のpのテキストをこの戻り値に設定したい場合は、どうすればよいでしょうか?

答えて

1

NokogiriのようなHTMLパーサを使用できます。

frag = Nokogiri::HTML.fragment('<input type="text" id="t" value="Leaves">') 
frag.at_css('#t').attr('value') 

しかし、それは最も可能性の高い最初の場所であなたのビュー/ヘルパーのデータの周りに渡すためにHTML文字列を使用しないことによって解決することができるものにかなり愚かとovercomplicatedソリューションのように思えます。

+1

むしろ愚かです。 – jvillian

+0

入力の場合は、フォームビルダオブジェクトにバインドする必要がありますので、これを実行する必要はありません。 ERBテンプレートもDOMに似ていません。その単なる文字列バッファーで、実際にはドキュメントとして操作することはできません。 – max

+0

@maxあなたはtext_field_tagヘルパーメソッドを使うべきであると提案していますね。次に、埋め込まれたルビコードの中に作成されたテキストフィールドの値を取得する方法はありますか? (この値をメソッドAに渡すことができるように) –

関連する問題