私は2つの問題を抱えているようです
1)単一のネストされたリソースを更新しようとしている間
レストランhas_1時間
と
時間belongs_toレストラン
resources :restaurants do
resource :hour
end
私のレストランのショーページに次のような編集リンクがあります。
<%= link_to 'Set Hour', edit_restaurant_hour_path([@restaurant, @restaurant.hour]) %>
編集ページには、次のような部分的なレンダリングがあります。
<%= render :partial => 'restaurants/hours', :locals => { :hour => 'hour' } %>
_hours.html.erbという名前の部分をロードします。
<%= form_for hour do |f| %>
<div class="row-fluid">
<div class="span1 hours_input">
<h3>Monday</h1>
From
<%= f.text_field :from_monday, :class => 'span20 hour_field' %>
To
<%= f.text_field :to_monday, :class => 'span20 hour_field' %>
</div>
<div class="span1 hours_input">
<h3>Tuesday</h3>
From
<%= f.text_field :from_tuesday, :class => 'span20 hour_field' %>
To
<%= f.text_field :to_tuesday, :class => 'span20 hour_field' %>
</div>
<div class="span1">
<%= f.submit 'Set Hours' %>
</div>
</div>
しかし、送信ボタンを押すと、エラーが発生します。
No route matches [POST] "/restaurants/34/hour/edit"
私はそれを次のように設定してみました:
<%= form_for hour, :method => put, :html => { :action => 'update' } do |f| %>
しかし、運がありません。どんな助けでも大歓迎です!レール3.2.3を使用しています
2)私の2番目の問題はかなり不思議です。
ボタンを押すと
<%= link_to 'Set Hour', edit_restaurant_hour_path([@restaurant, @restaurant.hour]) %>
レストランのショーページに、次のURLが表示されます。
http://localhost:3000/restaurants/34//hour/edit
//時間の前にダブルスラッシュを付けます。これは本番環境で機能しなくなると思いますが、開発中の私には影響がないようです。
繰り返しになりますが、読んでくれてありがとう、そして良いものを持ってください!
編集:これがレーキルートです-
restaurant_hour POST /restaurants/:restaurant_id/hour(.:format) hours#create
new_restaurant_hour GET /restaurants/:restaurant_id/hour/new(.:format) hours#new
edit_restaurant_hour GET /restaurants/:restaurant_id/hour/edit(.:format) hours#edit
GET /restaurants/:restaurant_id/hour(.:format) hours#show
PUT /restaurants/:restaurant_id/hour(.:format) hours#update
DELETE /restaurants/:restaurant_id/hour(.:format) hours#destroy
restaurants GET /restaurants(.:format) restaurants#index
POST /restaurants(.:format) restaurants#create
new_restaurant GET /restaurants/new(.:format) restaurants#new
edit_restaurant GET /restaurants/:id/edit(.:format) restaurants#edit
restaurant GET /restaurants/:id(.:format) restaurants#show
PUT /restaurants/:id(.:format) restaurants#update
DELETE /restaurants/:id(.:format) restaurants#destroy
hour GET /:restaurant/hour(.:format) hours#show
POST /:restaurant/hour(.:format) hours#create
hour_add GET /:restaurant/hour/add(.:format) hours#new
hour_edit GET /:restaurant/hour/edit(.:format) hours#edit