1

在“索引”视图(没有 form_for)中,我有一个 link_to 行,我想在其中将 id 传递给控制器​​以用于多步表单:

<%= link_to user.username, useredit_steps_path(:id => user.id)  %>

我尝试使用以下行在控制器中读取此“id”:

@user = User.find_by_id(params[:id])

但是,我总是将“0”作为一个值来检索——这是错误的。

我做错了什么?

更准确地说:

对不起,这没有帮助。

这是我的 routes.rb 文件 FISneo::Application.routes.draw 做资源:useredit_steps

resources :age_classes
resources :member_statuses
resources :flights
resources :aircrafts
resources :aircraft_classes
resources :takeoff_types


get "password_resets/new"
get "sessions/new"
get "users/new"

get "log_out" => "sessions#destroy", :as => "log_out"
get "log_in" => "sessions#new", :as => "log_in"
get "sign_up" => "users#new", :as => "sign_up"

resources :sessions
resources :password_resets

resources :users
resources :flight_types

root :to => "sessions#new"
end

网址是:“.......:3000/useredit_steps.3”

这里“3”是一个用户的 id...

提前致谢,德克

4

2 回答 2

1

来自 Wicked 自述文件:

注意:Wicked 使用 :id 参数来控制步骤的流程

换句话说,您不能将任何内容传递给会覆盖 :id 参数的路由辅助方法,这就是您在上面所做的。尝试对键使用不同的符号,它需要在作为第二个参数传递的哈希中(您需要将第一个向导步骤的 id 作为第一个参数传递,以便在第二个参数中提供选项哈希)。IE

<%= link_to user.username, useredit_steps_path(:first_step, :user_id => user.id)  %>

其中 :first_step 被替换为 steps 数组的第一个元素

然后在控制器中,用

@user = User.find_by_id(params[:user_id])

抱歉,这个月前我无法看到并回答,只是发现了在类似问题上搜索的问题。认为值得为可能登陆这里的其他人发布。

于 2013-01-05T03:57:13.090 回答
0
<%= link_to user.username, useredit_step_path(user.id)  %>

useredit_step_path如果要显示特定用户,则为单数,而不是复数。

于 2012-08-02T13:43:22.133 回答