好吧,我知道有一百万个帖子,但我似乎无法找到解决方法。我刚刚开始使用rails,刚刚开始我的第一个独奏项目,经过了一个在集团上的指导。
我遇到了这个错误:
以下是我的路线:
Rails.application.routes.draw do
resources :registered_applications
devise_for :users
get 'about' => 'welcome#about'
root :to => 'welcome#index'
end
这是表格。单击提交时,我们会遇到错误:
我正在尝试
<%= form_for @application do |f| %>
,但我收到了错误,所以我改为此。这里的任何建议也将受到赞赏。
<h3 class="roboto">Register a new application</h3>
<div class="row">
<div class="col-md-4">
<p>Application Registration Guidelines:</p>
<ul>
<li>Applications must be named.</li>
<li>You must provide a URL.</li>
<li>You must be signed in to add an application to your account.</li>
</ul>
</div>
<div class="col-md-8 app-reg">
<%= form_for(:application) do |f| %>
<div class="form-group">
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control', placeholder: "Application name" %>
</div>
<div class="form-group">
<%= f.label :URL %>
<%= f.text_field :URL, class: 'form-control', placeholder: "Application URL" %>
</div>
<div class="form-group">
<%= f.submit "Save", class: 'btn btn-primary' %>
</div>
<% end %>
</div>
</div>
这是我的控制器:
绝对是正在进行中的工作
class RegisteredApplicationsController < ApplicationController
def index
@applications = Application.all
end
def new
@application = Application.new
end
def show
@application = Application.find(params[:id])
end
def edit
@application = Application.find(params[:id])
end
def create
@application = Application.new(application_params)
if @application.save
flash[:notice] = "Application was saved successfully."
redirect_to @application
else
flash[:error] = "There was an error creating the application. Please try again."
render :new
end
end
end
private
def application_params
params.require(:application).permit(:name, :URL)
end
如果您认为需要查看,请参阅应用程序模型:
class Application < ActiveRecord::Base
belongs_to :user
end
非常感谢任何帮助。
答案 0 :(得分:1)
您应该更改资源:registered_applications到resources:routes.rb中的应用程序,因为Application是您的模型,而应用程序是被视为资源的表的名称。
您收到错误是因为没有名为registered_applications的资源或表,因为您已将表命名为应用程序并将模型命名为Application。
答案 1 :(得分:0)
从你的代码中我假设你在应用程序创建表单中按下post按钮时会出现错误,对吧?因此,您应该在表单生成中定义使用@application
而不是:application
作为模型的模型。正如你所写的那样,你已经尝试过,但出了点问题:如果你明确指出了什么,那将有助于解决问题。
resources registered_application
不会为您创建POST操作路由到registered_applications / new。只发布到registered_applications
更新:
我也不建议你将模型,类变量命名为可能被命名的其他重要变量/模型:比如你Application
类。这可能是痛苦奇怪错误的根源