#author("2016-10-13T02:32:09+09:00","default:wikiwriter","wikiwriter")
[[Rails]]

&tag(Rails/プラグイン);
*目次 [#q8bc3c24]
#contents
*関連ページ [#ua03319d]
*参考情報 [#f8651e21]
-[[使いやすくなった Rails 3.1 の Engine - passingloopの日記:http://d.hatena.ne.jp/passingloop/20110801/p1]]…Engine型プラグインの利点。
-[[Rails用のgemを作成する手順 (Rails 4.0以降) – Oh My Enter!:http://www.ohmyenter.com/how-to-make-a-gem-for-rails/]]…Engine型プラグインを作成する手順。
-[[Gem、Railtieプラグイン、Engine(full/mountable)の違いとそれぞれの基礎情報 - Qiita:http://qiita.com/kidach1/items/565c2c077ae8d15fe3a8]]…プラグインの違い。
-[[rails pluginコマンドで簡単に出来るgemの作成方法。 - Qiita:http://qiita.com/camelmasa/items/44ceb6ea1a3c727bc567]]…mountableでcssを追加するプラグインの例。

*概要 [#x48343de]
-プラグインの種類、下に行くほど複雑っぽいがmountable型が主流?
--Railtie型
--Engine型
--Mountable Engine型
-cssを一個追加するようなプラグインをmountableでつくる例もあるし。

*作成 [#l98d448e]

**mountable型の作成 [#h0335811]
-以下のコマンドを実行
 bundle exec rails plugin new ~/work/myengine  --mountable --skip-bundle


*Tips [#e33396a5]

**engine側のApplicationHelperをアプリ側で使用する [#f77fa9e2]
-[[Using Rails 4 engine/plugin helpers across your entire app – Carlos Roque:http://www.carlos-roque.com/2015/02/19/using-rails-4-engineplugin-helpers-across-your-entire-app/]]
#pre{{
class ApplicationController < ActionController::Base
  # your code
  helper Paginas::ApplicationHelper

  # your other code
end
}}
-アプリ側のApplicationControllerにhelperメソッドを使って追加する。こうすることでview側でだけメソッドが追加される。

*トラブルシューティング [#ye1834c8]

**IntelliJ/RubyMineでプラグインのメソッドが自動補完されない [#q9f9513f]
-単に入力しているだけだと補完されない。
-Ctrl+Spaceを押して「No Suggestions」と表示されあと、もう一回Ctrl+Spaceを押す。

**Uninitialized Constantsのエラーが発生 [#b34a59de]
-なぜかdevelopment環境では発生せず、production環境で発生。
-原因は名前空間とファイルの位置関係が一致していなかったから?
-mountableのモデルはapp/models/my_engine/article.rbのように配置して、article.rbは次のように作る
#pre{{
module MyEngine
  class Article
  end
end
}}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS