使用link_to将数据从视图传递到另一个控制器 - Ruby on Rails

时间:2014-08-19 07:21:30

标签: ruby-on-rails model-view-controller

我正在尝试将此用户ID从我的视图发送到控制器,现在的情况是该值正确传递给与此视图对应的控制器(manage_users_controller),但它没有被发送到其他控制器(server_management_controller) )

u.column :name => "Action" do |user|
  #Works fine
  link_to('Edit', edit_manage_user_path(user.id)) + " | " + 
    #This call does not send the value
    link_to('Assign Servers', edit_server_management_path(user.id)) 
end

Controller Action(server_management_controller):

def show
  if @uid == 1 #The value being sent from the view
    @servers_grid = initialize_grid(Server)
    @servers = Server.all
    @name = current_user[:username]
    @email = current_user[:email]
    render 'index'
  end
end

def edit
  @uid = params[:id]
  show
end

另一个值得一提的是,点击分配服务器链接时,值IS会附加到URL中,即xyz.com/server_management/1/edit

任何帮助将不胜感激。

--- ---解决

一个提示

参数以字符串形式出现,因此请确保不要立即将其视为整数。

1 个答案:

答案 0 :(得分:3)

您传递给Rails Url Helper的任何查询参数,如下所示:

edit_manage_user_path(anyname: user.id)

可以通过以下方式从被调用的操作中访问

params[:anyname]

anyname当然只是一个例子。

如果参数已经是Rails为您生成的URL的一部分,则最有可能:id。您可以通过执行rake routes来查找,这将为您提供应用程序中配置的所有路由的完整列表。

这会回答你的问题吗?