Ruby on rails 4 创建一个链接,链接到用slug标识的对象
在rails 4.2应用程序中,一些模型使用了虚拟URL,并在控制器中调用,如下所示:Ruby on rails 4 创建一个链接,链接到用slug标识的对象,ruby-on-rails-4,Ruby On Rails 4,在rails 4.2应用程序中,一些模型使用了虚拟URL,并在控制器中调用,如下所示: @staticpage = Staticpage.find_by_slug!(params[:id]) 然而,创建链接的各种尝试都失败了。例如: <%= link_to 'this', staticpage_url(33, locale: I18n.locale.to_s) %> 因为这会生成一个查找id的链接,而不是slug 如何在link_to语句中调用slug,同时确保遵守区域设置?
@staticpage = Staticpage.find_by_slug!(params[:id])
然而,创建链接的各种尝试都失败了。例如:
<%= link_to 'this', staticpage_url(33, locale: I18n.locale.to_s) %>
因为这会生成一个查找id的链接,而不是slug
如何在link_to语句中调用slug,同时确保遵守区域设置?slug没有本地化您最好使用gem:
你在使用friendly_id gem吗?我相信你指的是friendly_id(拼写)gem。不,这个没有被使用
#app/models/staticpage.rb
class Staticpage < ActiveRecord::Base
extend FriendlyId
friendly_id :param, use: [:finders, :slugged]
end
<% Staticpage.all.each do |page| %>
<%= link_to "x", page %>
<% end %>
def show
@page = Staticpage.find params[:id] #-> finds by slug
end