私は、本質的に宝石名前空間のActiveRecord :: Baseクラスの束である宝石を持っています。それらのすべてについて、私は同じ種類の問題を抱えています。私はRails:ActiveRecord :: Baseオブジェクトで呼び出されるデフォルトのメソッドをlink_toで変更する
<% @users.each do |user| %>
<td><%= link_to 'Show', user %></td>
<% end %>
...めちゃくちゃます何
resources :users
がLINK_TOである...
module MyGem
class User < ActiveRecord::Base
...
end
end
はその後、私のアプリで、私はルートを持っている...モデルを持っています私は...
undefined method `my_gem_user_path' for #<#<Class:0x0000000305f728>:0x00000003055408>
私はr outes.rbが、私はソリューションがデフォルトでmy_gem_user_path(user)の代わりにuser_path(user)を呼び出すようにモデル/ link_toを設定することができると考えています。私はちょうど、もし可能ならば、これをどうやってどうやって行うのか分かりません。
誰もがベストプラクティスを知っていますか?
私はあなたの助言に従いました。これはほとんどの場合、うまくいきます。この例では、MyGem :: Taskというモデルへのルートのタスクという名前の埋め込みリソースを追加しました。 rake routesはPUTルートがmy_gem_user_taskであると言っていますが、form_for([@ user、@ task])が評価されるときには '未定義メソッドmy_gem_user_my_gem_task_path'と表示されます。 my_gem_user_task_path(これは自動的に定義される)に評価するためにこれを修正する方法はありますか?私はレール3を使用しています。 – Ben