1

以下は text_field にあります。

= f.text_field :title, :size => 50, :onchange => remote_function(:update => :suggestions, :url => {:action => :display_question_search_results})

以下は、display_questions_search_results.rjs にあります。

page.insert_html :bottom, 'suggestions', :partial => 'suggestions'

ユーザーが入力するたびに、テキスト フィールドのキーワードに一致するタプルをデータベースで検索したいと思います。次に、それらの結果を表示します。しかし、現時点では、_suggestions.haml には「suggestions!!」という単語しか含まれていません。

しかし、「提案!!」を見るのではなく、suggestionsdiv タグでは、次のようになります。

try { Element.insert("suggestions", { bottom: "suggestions!!" }); } catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.insert(\"suggestions\", { bottom: \"suggestions!!\" });'); throw e }

なぜこれが行われているのかを突き止めようとしていますが、私が見つけた以前に尋ねられた質問は、私がしていることよりも複雑に思えます...

4

1 に答える 1

2

更新する要素を指定すると、指定した要素のコンテンツを置き換える html (rjs/javascript ではない) がアクションによって返されると想定されます。

したがって、 の内容を置き換える必要がある場合は:suggestions、コントローラーで部分的にレンダリングするだけです。

render :partial => 'suggestions'

ただし、この要素にコンテンツを追加する必要がある場合は、置き換えるのではなく:update => :suggestions、ビュー コードから削除します。

= f.text_field :title, :size => 50, :onchange => remote_function(:url => {:action => :display_question_search_results})

コントローラーのコードはそのままにしておきます。

page.insert_html :bottom, 'suggestions', :partial => 'suggestions'
于 2010-05-26T23:56:35.600 に答える