問題タブ [activesupport-concern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
451 参照

ruby-on-rails - 2 つのモデルに対して 1 つの方法。モデルの名前を変数としてコントローラーに渡す方法は?

2 つの異なるコントローラー (Posts & Boards) に 2 つのメソッドがあります。それらはほとんど同じです。違いは、モデル-インスタンス-関連付け名のみです。これを DRY するには、メソッドをモジュールに記述しようと思いますが、Post と Board 間で共有するにはどうすればよいですか?

更新OK、メソッドをモデルの問題に移動する場合、ここで関連付けをどのように処理する必要がありますか? ここ@user.posts.pluck(:id)とここ@user.boards.pluck(:id)で、投稿とボードを置き換えることができるので、両方で機能しますか?

0 投票する
2 に答える
3256 参照

ruby-on-rails - Railsコントローラーのbefore_filtersの順序と懸念事項

次のように定義された Rails の問題があります。

そしてbefore_filter、コントローラーレイヤーにもあります:

MyConcerninsideを含める場合MyController、before フィルターが呼び出される順序は、コードの配置方法に依存しますか? たとえば、

filter_inside_concernは前に呼び出されますかfilter_inside_controller(またはその逆)?

ありがとうございました!

0 投票する
1 に答える
2183 参照

ruby-on-rails - Undefined method in ActiveSupport concern

I have a model that extends ActiveRecord::Base and includes a concern:

UserConcern is stored in the concerns directory:

I am getting a run-time error when I try to create a new user by calling the create_user method that looks like this:

I have two questions about this:

  1. Why is the some_method undefined? It seems to me that I am properly including it with the statement include UserConcern. Does it have something to do with my User class extending ActiveRecord::Base? Or maybe something to do with the fact that I am calling some_methods() from a class method (i.e. self.create_user())?

  2. Why does the run-time error refer to #<Class:0x000000...> instead of to #<User:0x000000...>?

0 投票する
1 に答える
8400 参照

ruby-on-rails - Rails の懸念メソッドが別の懸念メソッドをオーバーライドすると、通常のモジュールのように機能しない

ルビーで次の構造を持っているとしましょう(レールなし)

Railsの懸念事項を使用する場合

それで、私はここで何が欠けていますか?通常のモジュールのように、懸念事項で super を使用する必要があります。検索しましたが、このトピックに関するヘルプが見つかりませんでした

0 投票する
2 に答える
92 参照

ruby-on-rails - ActiveSupport::Concern のテストの動的生成

次のように定義された懸念があります。

そして、このような懸念を使用するさまざまなモデル:

これは意図したとおりに機能し、クラスのインスタンスで呼び出すことができる一連の新しいメソッドを生成します。

私の問題は、懸念をテストしようとしているときに発生します。生成された関数はすべて同じことを行うため、懸念を使用するすべてのモデルのテストを手動で作成することは避けたいと思います。代わりに、rspec を使用shared_example_forしてテストを 1 回記述し、rspec を使用して必要なモデルでテストを実行できると考えましたit_should_behave_like。これはうまく機能しますが、injectable_attributes関数に渡したパラメーターへのアクセスに問題があります。

現在、共有仕様内で次のようにしています。

これは機能しますが、これを行うには明らかに恐ろしい方法です。クラスインスタンスで既に定義されているメソッドを見るのではなく、クラスのインスタンスまたはクラス自体を介して、injectable_attributes 関数に渡された値のみにアクセスする簡単な方法はありますか?

0 投票する
0 に答える
51 参照

ruby-on-rails - 懸念事項に含まれる複数のブロックを追加するにはどうすればよいですか?

すべてを次のように示します。

次に、そのモジュールにブロックが定義されている場合に、追加のブロックを定義する方法は?

0 投票する
2 に答える
1087 参照

ruby-on-rails - Rails の懸念の動的関係

小さなモンゴイド ショッピング カートを持つレール用の gem を作成します。

取得するモデルに含めることで実装されますinclude MongoidCart::ActsAsProduct

-class の -class を -classに持ち込むのに問題がclass_nameあります。クラスへの関係を自動的に追加する必要があります。私が持っているように「ハードコード」すると、エラーはありません。ProductCartItemMongoidCart::CartItem:my_product

どうすれば:the_class_to_point_to_as_symbolダイナミックにできますか?