Cpage#new中的ActionController :: UrlGenerationError

时间:2015-08-06 19:35:01

标签: ruby-on-rails ruby forms

我对Ruby on Rails很新,并且一直在尝试创建一个简单的表单,但我一直收到这个错误

  

Cpage#new

中的ActionController :: UrlGenerationError      

没有路线匹配{:action =>" show",:controller =>" cpage"}丢失   必填项:[:id]

以下是其所指的行:

<%= form_for :cpage, url: cpage_path do |f| %>

以下是我的路线:

Prefix Verb   URI Pattern               Controller#Action
signin_claim GET    /signin/claim(.:format)   signin#claim

cpage_index GET    /cpage(.:format)          cpage#index
POST   /cpage(.:format)          cpage#create

new_cpage GET    /cpage/new(.:format)      cpage#new

edit_cpage GET    /cpage/:id/edit(.:format) cpage#edit
cpage GET    /cpage/:id(.:format)      cpage#show

PATCH  /cpage/:id(.:format)      cpage#update

PUT    /cpage/:id(.:format)      cpage#update

DELETE /cpage/:id(.:format)      cpage#destroy

root GET    /                         signin#claim

格式化在这里很奇怪。有什么建议??

1 个答案:

答案 0 :(得分:1)

问题是当您定义表单时,您传入的方法<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bearfishapps.cells.android" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="22" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/GdxTheme" > <activity android:name="com.example.app.android.AndroidLauncher" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.purplebrain.adbuddiz.sdk.AdBuddizActivity" android:theme="@android:style/Theme.Translucent" /> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest> 会出错。如果你进入Rails控制台,你可以重现那个错误:

cpage_path

如果你看错误,你会看到一个标题为rails c > Rails.application.routes.url_helpers.cpage_path => ActionController::UrlGenerationError: No route matches ... 的部分。这是重要的部分;您试图调用需要id参数的路由助手,因此调用该助手的有效方法是missing required keys: [:id]等等。

如果您想要用于创建新资源的URL,则可能会改为cpage_path(123)(不需要该参数)。您可以通过访问控制台并绑定new_cpage_path()来确认;路线助手前缀列在最左侧的列中,因此您应该看到rake routes的条目,new_cpage的条目,cpage等。