我的问题是,当我尝试从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) %>