0

我正在使用friendly_id gem来处理我的 Rails 4 应用程序中的 slug。为简单起见,假设我有两个资源MissionsTasks任务嵌套在Missions中。两种模型都使用 FriendlyId,并且 slug 工作正常。因为Task属于Mission,所以Task上有一个mission_id

更新Task时遇到问题。因为mission_id作为一个slug(一个friendly_id 字符串而不是一个整数id)通过参数,所以Task上的mission_id被更新为0,因为它需要一个整数并且被传递一个字符串。

有人对如何解决这个问题有任何想法吗?

路线.rb

resources :missions do
  resources :tasks
end

使命.rb

class Mission < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, use: :slugged
  has_many :tasks
end

任务.rb

class Task < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, use: :slugged
  belongs_to :mission
end
4

1 回答 1

1

包括finders

friendly_id :name, use: [:slugged, :finders]

来自文档:

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 版的。

于 2013-09-05T20:13:35.920 回答