ruby on rails创建个人资料页面

时间:2016-03-06 05:47:34

标签: ruby-on-rails

我创建了一个控制器配置文件
现在我在edit.html.erb和show.html.erb

中有了这段代码
<%= form_for @profile do |f| %>
    <%= f.text_field :name %>
    <%= f.submit %>
<% end %>

所以,让我们说当用户更新表单时,永久链接将是:

profiles/:id/

但基本上我希望永久链接是这样的:

profiles/%username%

我希望它实际上就像一个&#34;我的个人资料&#34;控制器,用户应该只编辑他的个人资料,用户应该只有个人资料

2 个答案:

答案 0 :(得分:3)

这很容易做到。我假设您在路由文件中使用resources。您只需要告诉Rails您希望使用slug而不是id来访问,更新和删除资源。

resources :profiles, param: :slug

现在,您的资源将通过slug生成。在您的控制器中,为了访问单一资源,您可以这样做:

Profile.find_by_username(params[:slug])

答案 1 :(得分:1)

你的问题让你觉得你来自wordpress背景并且没有完全掌握Rails实际上是什么,所以如果是这样的话,你可能想要更多地学习Rails指南和找到一些Rails教程。但是,要回答您的问题,请在application_controller.rb中执行以下操作:

def profile_path(profile, options={})
  profile_url(profile, options.merge(:only_path => true))
end

def profile_url(profile, options={})
  url_for(options.merge(:controller => 'profiles', :action => 'show',
                      :id => profile.username))
end