在“索引”视图中(没有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 ...
提前谢谢,DIrk
答案 0 :(得分:1)
来自邪恶的自述:
注意:Wicked使用:id参数来控制步骤流程
换句话说,你不能将任何东西传递给会覆盖:id参数的路由助手方法,这就是你在上面所做的。尝试使用不同的符号作为键,它需要在作为第二个参数传递的哈希中(您需要将第一个向导步骤的id作为第一个参数传递,以便在第二个参数中提供选项哈希)。即。
<%= link_to user.username, useredit_steps_path(:first_step, :user_id => user.id) %>
其中:first_step被步骤数组的第一个元素替换
然后在控制器中,用
读出@user = User.find_by_id(params[:user_id])
对不起,我几个月前没有看到和回答,只是发现问题搜索类似的问题。认为值得发布给其他可能会落在这里的人。
答案 1 :(得分:0)
<%= link_to user.username, useredit_step_path(user.id) %>
如果您想要显示特定用户, useredit_step_path
是单数,而不是复数。