をオーバーモジュール方法からの逸レール
-
06-09-2019 - |
質問
のwill_paginate逸品が破損しっOracle.デフォルトの paginate_by_sql
方法のWillPaginateモジュールを挿入する際、余分などへのクエリと詰まった事を確認してください。
このコード自体は簡単に固定していると思うのスポンサーではありませんようにレールを拾った。
んを変更したいコードの逸品そのものとすることが私のコードを壊その他の機です。
また作lib/テストです。rbのファイルを含む:
module WillPaginate
def paginate_by_sql
(my code goes here)
end
end
とが必要です。rbな持ち直して私の変わります。もし必要でコントローラー/願います。rbな持ち直して私の変わります。
一時的に物価が高いというのは意外でした作出方法内の特定のモデルそのものがこのスポーツは世界共通ルールなのでハッキング、もしくは使用できませんのでその他のモデルです。
思いをすることがな運追跡で使用します。
解決
あなたは意志の仕事をしているが、あなたのコードは次のように見える必要があります:
module WillPaginate
module Finder
module ClassMethods
def paginate_by_sql(sql, options)
# your code here
end
end
end
end
言い換えれば、モジュールヘッダと上書きする方法以外のすべてを削除し、finder.rbに入り、その後、lib内のファイルに保存し、environment.rbの中に含まれています。ほら、インスタントモンキーパッチ!
他のヒント
より簡潔な解決策ます:
WillPaginate::Finder::ClassMethods.module_eval do
def paginate_by_sql sql, options
# Your code here
end
end
設定/初期化子で初期化ファイルにコードを入れてください。これは、環境がロードされたときに実行する必要のあるコードを配置する正しい場所です。それはまた、より良いので、バグが追跡しやすくなります、各ファイルの意図が明確になって、あなたのコードを整理します。 environment.rbには乱雑しないでください!
Okろしに行くって言ったじゃないこのように自分たちが戦ビットを読んでからその答えなのです。
第 のコードを変更したいのgithubレポ、コンポーネント(すべてのことを利用 pry きに変わっていきたいと思っている逸品を選定 Code
左側の代わりに Issues
次へ コンテンツをコピーし、モジュールを変更したい場所でテ .rb
ファイル内のconfig/initializersフォルダにまとめた。以下に例を示します。
module Forem
module TopicsHelper
def link_to_latest_post(post)
text = "#{time_ago_in_words(post.created_at)} #{t("ago_by")} #{post.user}"
link_to text, forum_topic_path(post.topic.forum, post.topic, :anchor => "post-#{post.id}")
end
end
end
現在に変更するには:
Forem::TopicsHelper.module_eval do
def link_to_latest_post(post)
text = "#{time_ago_in_words(post.created_at)} #{t("ago_by")} #{post.user}"
link_to text, forum_topic_path(post.topic.forum, post.topic, :anchor => "post-#{post.id}")
end
end
現在、追加のコードを再起動します。
離れます。