0

现在我可以通过访问来查看我收到的消息example.com/messages/46747

我的路线是这样设置的

'messages/:id' => 'messages#show', :as => 'show_messages' 

访问该页面的链接标签设置为

<%= link_to 'show message', show_messages_path %> 

在这种情况下,消息的 ID 显示在 URL 中。
我猜在大多数情况下,ID 应该由散列键代替。

我怎样才能做到这一点?

4

1 回答 1

3

使用 ActiveRecord::Base to_param 来更改路径生成的 url:

class User < ActiveRecord::Base
  def to_param  # overridden
    name
  end
end

user = User.find_by_name('Phusion')
user_path(user)  # => "/users/Phusion"

只需通过您希望在 url 中看到的文本覆盖 Message 类中的 to_param 方法。

于 2012-07-19T06:56:53.933 回答