Я все еще изучаю Rails, и я столкнулся с проблемой, которая, на мой взгляд, должна быть довольно простой. Надеясь, что кто-то может показать мне ошибку моих путей.
Я прочитал этот пост: Как добавить пользовательский маршрут RESTful в приложение Rails? , в котором содержится масса полезной информации (для Rails 2 я использую Rails 3), но я не могу заставить мой код работать. Вот где я нахожусь:
Я добавил свой route.rb следующим образом:
resources :proposals do
member do
put :change_status
end
end
Я добавил в свои предложения_контроллер.рб следующим образом:
def change_status
@proposal = Proposal.find(params[:id])
respond_to do |format|
if @proposal.change_status
format.html { redirect_to(@proposal, :notice => 'Proposal status was changed.'') }
format.xml { head :ok }
else
format.html { redirect_to(@proposal, :error => 'Proposal failed to transition.') }
format.xml { render :xml => @proposal.errors, :status => :unprocessable_entity }
end
end
end
И, наконец, на мой взгляд, я обращаюсь к нему следующим образом:
<%= link_to "Deliver to Client", change_status_proposal_path(@proposal) %>
Но когда я захожу на свой сайт, зайдя на
http://localhost:3000/proposals/4/change_status
Я получаю следующую ошибку:
Ошибка маршрутизации
Нет совпадений маршрутов "/ offer / 4 / change_status"
Я предполагаю, что я делаю здесь что-то глупое, потому что это должно быть действительно просто, но я просто не могу пройти мимо. Я прошу прощения за то, что задал такой простой вопрос, но если у кого-то есть какой-либо совет, это будет огромной помощью.
Заранее спасибо!