Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 创建一个链接,链接到用slug标识的对象_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 创建一个链接,链接到用slug标识的对象

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,同时确保遵守区域设置?

在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,同时确保遵守区域设置?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