使用重定向传递参数到控制器中的不同操作

时间:2013-11-15 15:51:47

标签: ruby-on-rails ruby-on-rails-3

这是控制器中的第一个动作:

def investor_following
  @investor = params[:user][:investor_id]
  # blah
end

def change_amount
  investor = "xyz"
  redirect to :action => :investor_following, :user[:investor_id] => investor
end

我收到错误如何重定向到行动投资者跟踪,什么是正确的语法与params。

1 个答案:

答案 0 :(得分:0)

您应该在routes.rb中为您的操作创建命名路由。我不确定你的投资者关注功能会做什么,所以我不确定它是否应该是GET,POST或PATCH。如果您打算修改模型,请使用POST / PATCH,否则请使用get。

一旦你有一个命名路线,你将得到一个像investor_following_path这样的路径助手,你可以将参数作为ruby对象发送:

#routes.rb
get '/investor_following', to: 'controllername#investor_following', as: 'investor_following'

#in your controller
redirect_to investor_following_path(user: {investor_id: investor})

这是未经测试的,但一般来说你应该做什么。

以下是redirect_to的信息: http://api.rubyonrails.org/classes/ActionController/Redirecting.html

以下是指定路径的路由信息​​: http://guides.rubyonrails.org/routing.html