Rails -简单表单调用我的用户控制器的指定动作



我的问题是,当我尝试从simple_form_for表单调用指定的方法时,它不起作用。

下面是我的代码:
<%= simple_form_for @user, :url => {:action => :register_iban}, :html => { :method => :post } do |f| %> 
                <div class="col-md-8">
                    <%= f.input :first_name, :label => t('user-show.payment.form.first_name'), placeholder: "Prénom" %>
                        <%= f.input :last_name, :label => t('user-show.payment.form.last_name'), placeholder: "Nom" %>
                        <%= f.input :iban, :label => t('user-show.payment.form.iban'), placeholder: "IBAN" %>
                        <%= f.input :bic, :label => t('user-show.payment.form.bic'), placeholder: "BIC" %>
                    </div>
                                    <div class="col-md-8 text-center">
                    <%= f.submit t('user-show.payment.title'), class: 'btn btn-danger' %>
                </div>
            <% end %>

所以,正如你所看到的,我尝试从我的用户控制器调用register_iban方法。但是当我这样做时,我有一个错误:没有路由匹配{:action=>"register_iban",:controller=>"users",:id=>"5",:locale=>nil}

每次我在控制器中创建一个新方法时,我都必须在路由中创建一个路由。Rb文件?在这里,我想让这个url:/users/5/register_iban(其中"5"是用户id)调用我的方法。

对不起,但我开始在ruby和我相当卡住:/

在您的config/routes.rb中尝试添加用户资源

resources users do
  member do
    post :register_iban
  end
end

没有匹配的路由{:action => " register_iban ":控制器=>"用户":id =>"5":语言环境=>零}

这个错误意味着你正在尝试访问一个不存在的路由。

路由定义在config/routes.rb:

#config/routes.rb
resources :users do
   post :register_iban
end

这将允许您通过表单调用users控制器中的register_iban方法。

你还需要确保你用合适的助手调用路由:

<%= simple_form_for @user, url: user_register_iban(@user) %>

最新更新