Rails 从未存储在数据库中的表单创建模型
Rails create a model from form that isn't stored in a database
我有一个帐户模型,我想从注册控制器和表单中创建。
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'
我当前的问题是来自 form_for() 方法
的 #<#:0x007fd9f2fd8468> 的未定义方法 `accounts_path'
我是不是因为 类 的名字搞混了?
form_for(@account)
会自动设置表单的一些属性,比如"action",就是表单提交的地方。如果您想将其更改为其他内容,请使用 url 选项。您可以将其传递给路径助手,或者只是将 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
编辑:我刚刚在您对 post 的编辑中注意到 "register/create" 被设置为 get
路线。这意味着您还需要告诉您的表单使用 get
方法:它默认为 post
.
<%= form_for @article, url: "/register/create", :method => :get %>
我有一个帐户模型,我想从注册控制器和表单中创建。
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'
我当前的问题是来自 form_for() 方法
的 #<#:0x007fd9f2fd8468> 的未定义方法 `accounts_path'我是不是因为 类 的名字搞混了?
form_for(@account)
会自动设置表单的一些属性,比如"action",就是表单提交的地方。如果您想将其更改为其他内容,请使用 url 选项。您可以将其传递给路径助手,或者只是将 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
编辑:我刚刚在您对 post 的编辑中注意到 "register/create" 被设置为 get
路线。这意味着您还需要告诉您的表单使用 get
方法:它默认为 post
.
<%= form_for @article, url: "/register/create", :method => :get %>