UJS - js.erbはどこに置くのですか?

私の記事は、いくつかのサイトに表示されるので、title、bodyなどの記事モデル、site_id、site_nameなどのサイトモデルも表示できます。article_id、site_id、visibleのいずれかのarticle_site_permissionモデルがあります。偽です。

私の記事編集ページで、私はbutton_toをやった:

<%= button_to 'Hide', article_site_permission_path(:id => @article_site_permission_id, :article_site_permission => {:visible => "false"}), :method => :put %>

これは動作します - それは許可を偽に変更します。そして、その逆を行うShowボタンを表示することができます。

Now I want to refresh the div that has the button in it by adding :remote => true to the button link. But where do I put my javascript?

article_site_permissionビューにありますか?記事自体のビューを見ていますが? update.js.erbと呼ばれていますか?

ご協力いただきありがとうございます。


明確にするために更新してください。

私のボタンは記事/編集ページにあります。ボタンはarticle_site_permissionsを更新します。私は記事に戻る/編集し、その中にボタンを持っているdivをリフレッシュしたい。

article_site_permissionsの更新コントローラを編集する必要がありますが、divを更新するにはjsをどこに配置しますか?

0
私は自分の答えを更新しました。それはあなたが知る必要があるすべてを説明するべきです。物事が不明な場合は、私に知らせてください。
追加された 著者 varatis,
再び更新されました。私が置いたものはうまくいくはずです
追加された 著者 varatis,

1 答え

あなたのコントローラでは、あなたが望むアクション(インデックス、ショーなど)にリダイレクトします。 〜を行う

respond_to do |format|
  format.js
end

あなたのコントローラーのそのアクションの下で。次に、対応するビューで、

index.js.erb

または、indexを任意のアクションに置き換えて、それを呼び出すアクションと同じ名前を付けるようにしてください。

編集

I should also mention you are correct in adding the remote true to your button. It's hard to tell from your question what action you're trying to reach in which controller. If you're trying to access the show action of the ArticleSitePermission controller, you're doing well. However, it seems like you're not trying to route to show. Check out this link for more info on routing to different actions.

編集2

これはそれを行う必要があります。

<%= link_to 'Click me', {:controller => "article", :action => "update", :id => @article_site_permission_id },
      :remote => true %>

また、記事にリダイレクトするだけであれば、jsを実行する必要はありません。記事#へリダイレクトするだけです

2
追加された
私はArticleSitePermissionコントローラにデータを送信したいが、記事ビューを更新する - それは私が不明であることだ!申し訳ありませんが、私の質問は不明でした。私は質問を更新しました。
追加された 著者 Edward,
はい、もちろんです - 私はちょうど私が来た場所に戻るためにコントローラのリダイレクト(:バック)です。
追加された 著者 Edward,