2017-06-17 21 views
-2

デフォルトでは、レールには対応するルートを持つコントローラCRUDアクションがあります。たとえば、書籍やカテゴリがあるシンプルな書店アプリがあります。私はホームページにサイドバーを通してすべてのカテゴリを表示したい。各カテゴリは、書籍数の整数を伴うドロップダウン要素です。ドロップダウンを展開すると、現在の書籍のタイトルを見たいと思ってリンクとして機能します。これは簡単に実装できます。同じページにあるリスト要素を管理する方法

質問がある場合は、静的なドロップダウンセクションのタイトル「カテゴリ」の隣にスティックされた+記号を付け加えることができますか?

新しいカテゴリを作成し、カテゴリビューの作成にリダイレクトせずに直ちに表示してリダイレクトすることができる、カテゴリコントローラの作成アクションのフォーム。

信頼できる解決策やチュートリアルのリンクをお伝えください。どうもありがとう。

答えて

0

あなたはAJAXフォームを探しているようです。レールでは、form_for ... remote:trueでこれを生成できます。これは、ページをリフレッシュせずにコントローラメソッドを呼び出すことができます。その後、レスポンスを返してJSを使用して、ユーザーがいるページを更新できます。あなたのビューで

<div class="hidden"> 
    <%= from_for @category, remote:true %> 
    Your form here 
    <% end %> 
</div> 

があなたのボタンがクリックされたフォームを非非表示にするには、いくつかのJavaScriptで追加例えば

、。レールのデフォルトf.jsを使用して、コントローラ

def create 
#normal create stuff 
    if save 
    respond_to do |f| 
     f.js 
     f.html {#re render page just in case JavaScript is disabled} 
    end 
    else 
    #handle error 
    end 
end 

では、Railsは、インスタンス@categoryのために、あなたが作る任意のパブリック変数にアクセスする必要があります。このファイルcreate.js.erbファイルを呼び出します。

あなたが

$('.append_category').append('<%= j render 'your category layout partial', locals: { category: @category }%>'); 

の線に沿って気にいらを行うことができますかあなただけのカテゴリリンク

$('.append_category').append('<%= link_to @category %>'); 

が必要な場合は、非常に素晴らしいガイドはこちらhttp://guides.rubyonrails.org/working_with_javascript_in_rails.html

ノートを見つけることができます:あなたのバージョンのレールに応じて、あなたのapplication_controller.rbにInclude ActionController :: MimeRespondsを追加する必要があります(これはレール5に必要です)

+0

ありがとうございます。私はそれを使用しようとします –

関連する問題