在Ruby on Rails中,我如何传递params [:id]?

时间:2014-03-17 19:34:46

标签: ruby-on-rails ruby url params

在我的主页上我有:

# /views/static_pages/home.html.erb
<%= render @posts %>

# /views/posts/_post.html.erb
<%= link_to 'haha', ?????? %>

通过控制器:

class StaticPagesController < ApplicationController
  def home
    @posts = Post.all.paginate(page: params[:page])
  end
end

class PostsController < ApplicationController
  def show
   @post = Post.find(params[:id])
  end
end

我想要获取该页面:

# /views/posts/show.html.erb
<%= @post.name %>

单击“哈哈”链接以传递params[:id]以获取页面/帖子/:id。

但我不知道如何更换??????。

此外,路线是:

Tradeincu::Application.routes.draw do  
  resources :users, :only => [:show]
  match '/users/:id', to: 'users#show', via: 'get'
  resources :posts
end

1 个答案:

答案 0 :(得分:2)

有很多方法可以使用:

<%= link_to 'haha', post_path(post) %>

或者:

<%= link_to "haha", controller: "posts", action: "show", id: post %>

您可以看到文档以及一些示例here