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

Ans*_*nss 3 model-view-controller ruby-on-rails

我试图将此用户 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
Run Code Online (Sandbox Code Playgroud)

控制器操作(服务器管理控制器):

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
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激。

- -解决了 - -

一点提示

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

bra*_*h14 5

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

edit_manage_user_path(anyname: user.id)
Run Code Online (Sandbox Code Playgroud)

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

params[:anyname]
Run Code Online (Sandbox Code Playgroud)

anyname当然只是一个例子。

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

这回答了你的问题了吗?