我对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
格式化在这里很奇怪。有什么建议??
答案 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
等。