我的目标网页上有一个字段,我想用它来接受以完整注册表单收集的用户数据字段。我想将登录页面字段值传递给new_user_registration_path,以便完整注册表单预先填充它。我在尝试:
form_for Candidate.new, url: new_candidate_registration_path(:zip => :zip )
= f.text_field :zip, class: 'input', placeholder: 'Your Zip Code'
= f.submit
但是我收到了一个帖子错误,并且没有传递第一个表单中的zip。我如何实现此功能?
路线:
cancel_candidate_registration GET /candidates/cancel(.:format) candidates/registrations#cancel
candidate_registration POST /candidates(.:format) candidates/registrations#create
new_candidate_registration GET /candidates/register(.:format) candidates/registrations#new
edit_candidate_registration GET /candidates/edit(.:format) candidates/registrations#edit
PATCH /candidates(.:format) candidates/registrations#update
PUT /candidates(.:format) candidates/registrations#update
DELETE /candidates(.:format) candidates/registrations#destroy
答案 0 :(得分:0)
好吧,我不会质疑你为什么要这样做,但是如果你想破解它,你可以创建新的自定义动作或将参数传递给会话并在你的视图中使用。
我可以看到你正在使用设计,所以不要被埋没在细节中,你可以:
创建候选控制器并向其添加创建操作
class CandidatesController < ApplicationController
def create
if paras[:candidate]
session[:zip] ||= params[:candidate][:zip]
redirect_to new_candidate_registration_path
else
redirect_to :back
flash[:error] = "man, where's the zip?"
end
end
end
为您的路线添加新路径.rb
resources :candidates, only: [:create]
从表单中删除URL,因为Rails将通过匹配模型的名称提交给新控制器。
现在,您应该可以在视图中使用会话来填充表单。
只需使用value: session[:zip]