着陆页字段 - 将值传递给新用户表单字段

时间:2015-02-01 20:55:27

标签: ruby-on-rails

我的目标网页上有一个字段,我想用它来接受以完整注册表单收集的用户数据字段。我想将登录页面字段值传递给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

1 个答案:

答案 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]

即可