Rails从不存储在数据库中的表单创建模型

时间:2015-01-27 16:35:21

标签: ruby-on-rails ruby model controller

我有一个帐户模型,我想从注册控制器和表单创建。

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()方法

我是否因为班级的名字而混淆了什么?

1 个答案:

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