我正在使用friendly_id gem来处理我的Rails 4应用中的slu ..为简单起见,假设我有两个资源,任务和任务。 任务嵌套在任务中。两个型号都使用FriendlyId,并且slugs工作正常。由于任务属于任务,任务上有 mission_id 。
我在更新任务时遇到了问题。因为 mission_id 作为一个slug(一个friendly_id字符串而不是一个整数id)来参数,所以任务上的 mission_id 正在更新为 0 ,因为它期望一个整数并且正在传递一个字符串。
任何人对如何解决此问题都有任何想法?
的routes.rb
resources :missions do
resources :tasks
end
Mission.rb
class Mission < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: :slugged
has_many :tasks
end
Task.rb
class Task < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: :slugged
belongs_to :mission
end
答案 0 :(得分:1)
加入finders
:
friendly_id :name, use: [:slugged, :finders]
来自doc:
Finders are no longer overridden by default. If you want to do friendly finds,
you must do Model.friendly.find rather than Model.find. You can however
restore FriendlyId 4-style finders by using the :finders addon
这是针对第5版。