我有一个帐户模型,我想从注册控制器和表单创建。
index.html.erb
<div id="registration">
<%= form_for(@account) do |f| %>
<% if @account.errors.any? %>
register_controller.rb
class RegisterController < ApplicationController
def index
@account = Account.new
end
def create
@account = Account.new(parames[:account])
end
end
end
end
的routes.rb
Rails.application.routes.draw do
get 'register/index'
get 'register/create'
我目前的问题是#&lt;#:0x007fd9f2fd8468&gt;的未定义方法`accounts_path'。来自form_for()方法
我是否因为班级的名字而混淆了什么?
答案 0 :(得分:0)
form_for(@account)
会自动设置表单的某些属性,例如&#34; action&#34;,这是表单提交的位置。如果要将其更改为其他内容,请使用url选项。你可以传递一个路径助手或只是把网址放进去。例如
<!-- if you have a named path you can use the helper for it -->
<%= form_for @article, url: create_register_path %>
或
<!-- alternatively just pass the url -->
<%= form_for @article, url: "/register/create" %>
或
<!-- or you can pass the url as a hash if you prefer -->
<%= form_for @article, url: {controller: "register", action: "create"} %>
http://guides.rubyonrails.org/form_helpers.html
编辑:我刚刚在您的帖子编辑中注意到&#34;注册/创建&#34;被设置为get
路由。这意味着您还需要告诉您的表单使用get
方法:默认为post
。
<%= form_for @article, url: "/register/create", :method => :get %>