0

私のルート.rb

resources :users do
    resources :requests , :only => [:new,:create,:destroy]
end

user.rb

class User < ActiveRecord::Base
    attr_accessor :password
    attr_accessible :email, :firstname, :lastname, :state, :city, :password, :password_confirmation, :image
 # mount_uploader :image, ImageUploader
 has_many :requests

request.rb

class Request < ActiveRecord::Base
    attr_accessible :email, :status, :user_id
    belongs_to :user
end

ユーザーのログイン後、user.show ページからリンクを渡します

<li><span>  <%= link_to "Send Request" , new_user_request_path(@user)  %> </li>

私のパスは正しく表示されましたが、request.new の下に表示されず、次のエラーが発生します。

ルーティング エラー

No route matches {:controller=>"users", :action=>"edit"}

私はレールが初めてです。誰か助けてください。

ありがとう

4

1 に答える 1

0

editアクションではなくアクションを呼び出しているようですnewedit_user_request_path次のように、ユーザーと一緒にリクエストを渡す必要があるため (リクエストはネストされたリソースであるため)、これでエラーが説明されます。

edit_user_request_path(@user, @request)

コードをもう一度チェックして、エラーの実際の原因を確認してください。

于 2012-08-23T07:02:13.990 に答える