在我的索引页面中,我将以下内容作为设置Acts_as_votable gem的一部分。
<%= link_to like_bike_path(bike), method: :put, class: "btn btn-default" do %>
在我添加FriendlyId之前它工作正常,可能是因为like_bike_path正在寻找id而不是friendlyID(即虚荣URL)。有没有办法改变
like_bike_path
类似
like_friendly.find_path
适用于Localhost:3000,但是Heroku日志告诉我ActionView::Template::Error (undefined method slug' for #<Bike"
我的两个acts_as_votable调用“like_bike_path(bike)”和“&lt;%= bike.get_upvotes.size%&gt;”。
谢谢!
答案 0 :(得分:0)
#app/models/bike.rb
class Bike < ActiveRecord::Base
extend FriendlyId
friendly_id :column, use: [:finders, :slugged]
end
这将允许使用slug
,而无需更改ActiveRecord中的默认模式...(@bike = Bike.find params[:id]
)。
-
关于heroku
错误,这意味着您没有迁移数据库(其列中不包含slug
)。
您需要确保运行heroku run rake db:migrate
,并确保已重新保存所有@bike
条记录(以便填充slug
列。)