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 %>