2017-06-21 8 views
0

私は何百ものHTMLページを含むRailsアプリケーションを構築しており、jsライブラリを含む各ページに一意のjavascriptが必要です。 Railsは私がそれをもっと熟知しているので、また他のバックエンドの目的のためです。RailsアプリケーションでマルチページJavaScriptを管理する最適な方法は何ですか?

単純なコード変換(例:XMLからJSON)オンラインツールの例を考えてみましょう。ここで、xmlデータをjsonに変換するコードは、HTMLページのjavascriptで記述されています。私の場合、私は100をそのようなツール(すなわち、csvをjsonに、htmlをpdfなど)にしたいと思います。それぞれのツールは他から独立しています。私はこれらのデータをデータベースに保存するのではなく、ツールを使用するユーザー情報のみを保存します。つまり、基本的にすべてのページが1つのコントローラからレンダリングされます。

私はそれより良いアプローチを提案してください。または、すべての単一のHTMLページにJavaScriptを書き続ける必要があります。ありがとう。

+0

私はあなたのアプリケーションの構造understoo持っていることを確認していません。あなたは "ページ"と言うときそれはコントローラのビューですか? – Maxence

+0

私が編集した質問をチェックしてください。 –

+0

技術的には、レールはユーザーデータの格納にのみ使用され、これらの「ページ」は単一のコントローラーのみでレンダリングされます。彼らはデータベースとは関係ありません –

答えて

0

私は以下、CoffeeScriptのOOPメソッドを使用することをお勧めしたいの上には、私はあなたがクラスメソッドでコーヒーを使用することをお勧めして、イベントで、各ページを確認し、詳細およびご要望

  • ためのいくつかのコードですturbolinks:あなたは[0]コントローラを意味するpurchase_requestsと新しい方法である コントローラの名前と(「purchase_requests.new」)の例の$のための方法と、どのページをチェックすることができ、負荷
  • 私はあなたを示唆します下記の参考文献のためにbrandon hilkertのブログを読むのはです

チェックとサンプルのCoffeeScript各ページのロード

class App.PurchaseRequest 

    renderYourJavascript: -> 
    console.log "purchase request js" 

$(document).on "turbolinks:load", -> 
    if $(".purchase_requests.new")[0] || $(".purchase_requests.edit")[0] 
    purchase_request = new App.PurchaseRequest 
    purchase_request.renderYourJavascript() 
0

私は確かにあなたの理想を理解しています。しかし、私はあなたのデータベースにJavaScriptコードを保存しようとすることができると思います。 そして、データベースからJavaScriptのコードを読み取るためのコントローラーを使用し、javascriptファイルとしてレンダリングします。

例:

# routes.rb 
get '/js/:file_name.js', to: 'javascripts#show' 

# model 
Javascript(id: :interget, name: :string, content: :text) 

# controller 
class JavascriptsController < ApplicationController 
    def show 
     js = Javascript.find_by_name(params[:file_name]) 
     respond_to do |format| 
     format.js { js.content if js.present? } 
     end  
    end 
end 

私は単に私の理想を記述してみてください。もう一度確認してください、そして確かにそれはあなたが望むように動作します。

ヘルプが必要です。あなたのケースでは

+0

お返事ありがとうございます。ここの1ページは、それ自体が1ページのアプリケーション全体であり、多くのJavaScriptコードと依存ライブラリが必要です。私はデータベースに格納するのは良いアプローチだとは思わない。実際、私はそのデータベースを使いたいとは思っていません。私は詳細で質問を編集しました。チェックしてください ... –

関連する問題