Ruby on Rails中,如何通过路径和link_to传递参数实现长尾链接?

2026-04-11 19:582阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计500个文字,预计阅读时间需要2分钟。

Ruby on Rails中,如何通过路径和link_to传递参数实现长尾链接?

我有名字路由:map.up_vote='up_vote', controller='rep', action='up_vote,但up_vote需要传递两个参数,postID和posterID。我似乎无法想象如何在局部实现这一点,但在集成测试中我没有遇到问题。部分

我有一个名字路线:

map.up_vote 'up_vote', :controller => 'rep', :action => 'up_vote

但up_vote需要传递两个参数,postID和posterID,我似乎无法想象如何在部分中做到这一点,但在集成测试中我没有问题.

部分:

link_to 'Up Vote', up_vote_path, {:postID => session[:user_post_id], :postersID => session[:poster_id]}

整合测试:

post up_vote_path,{:postID => @latest.id,:postersID => users(:bob).id} (this works ok)

1)部分内容是怎么回事?

2)我可以对我的测试做些什么改变才能抓住这个?

一个问题:为什么要在链接中传递会话变量?您可以直接从会话中获取它们……

我不知道是否有任何特殊原因:会话中有user_post_id和:poster_id,但我建议你做两件事:

1)在网址中传递你的变量,会话可能是邪恶的(尝试在你的浏览器上回击,刷新和转发)

2)在URL /控制器动作逻辑中使用资源.

示例(仅在我说得对,你投票给用户的帖子时才有效):

路线:

map.resources :users do |user| user.resources :posts do |post| post.resource :vote end end

所以你可以有这个网址:

/users/:id/posts/:post_id/vote

和链接路径:

link_to "Up", user_post_vote_path(@user, @post), :method => :create

我使用@user和@post而不是整数,因为路径方法接受它们,你可以用以下代码构建一个更短的版本:

link_to "Up", [@user, @post, :vote] # or [:vote, @post, @user]

实现:

class VoteController .... def create # do your stuff here end end

这样它将更容易和RESTful.

Ryan Bates获得了great episode的资源,绝对值得一看.

Ruby on Rails中,如何通过路径和link_to传递参数实现长尾链接?

本文共计500个文字,预计阅读时间需要2分钟。

Ruby on Rails中,如何通过路径和link_to传递参数实现长尾链接?

我有名字路由:map.up_vote='up_vote', controller='rep', action='up_vote,但up_vote需要传递两个参数,postID和posterID。我似乎无法想象如何在局部实现这一点,但在集成测试中我没有遇到问题。部分

我有一个名字路线:

map.up_vote 'up_vote', :controller => 'rep', :action => 'up_vote

但up_vote需要传递两个参数,postID和posterID,我似乎无法想象如何在部分中做到这一点,但在集成测试中我没有问题.

部分:

link_to 'Up Vote', up_vote_path, {:postID => session[:user_post_id], :postersID => session[:poster_id]}

整合测试:

post up_vote_path,{:postID => @latest.id,:postersID => users(:bob).id} (this works ok)

1)部分内容是怎么回事?

2)我可以对我的测试做些什么改变才能抓住这个?

一个问题:为什么要在链接中传递会话变量?您可以直接从会话中获取它们……

我不知道是否有任何特殊原因:会话中有user_post_id和:poster_id,但我建议你做两件事:

1)在网址中传递你的变量,会话可能是邪恶的(尝试在你的浏览器上回击,刷新和转发)

2)在URL /控制器动作逻辑中使用资源.

示例(仅在我说得对,你投票给用户的帖子时才有效):

路线:

map.resources :users do |user| user.resources :posts do |post| post.resource :vote end end

所以你可以有这个网址:

/users/:id/posts/:post_id/vote

和链接路径:

link_to "Up", user_post_vote_path(@user, @post), :method => :create

我使用@user和@post而不是整数,因为路径方法接受它们,你可以用以下代码构建一个更短的版本:

link_to "Up", [@user, @post, :vote] # or [:vote, @post, @user]

实现:

class VoteController .... def create # do your stuff here end end

这样它将更容易和RESTful.

Ryan Bates获得了great episode的资源,绝对值得一看.

Ruby on Rails中,如何通过路径和link_to传递参数实现长尾链接?