मैं रेल 4 सीखते समय एक छोटे से अभ्यास के माध्यम से काम कर रहा हूं, लेकिन ऑब्जेक्ट को अपडेट करने का प्रयास करते समय रूटिंग त्रुटि में चल रहा हूं। मैंने एक त्रुटि संदेश प्राप्त हो रही है: कोई मार्ग मैचों [पोस्ट] "/ फिल्मों/1/संपादित करें" लेकिन नहीं देख सकते हैं, जहां मेरे कोड सही नहीं है:रेल 4 राउटिंग त्रुटि: कोई रूट मिलान नहीं है [POST]
मेरी movies_controller.rb
class MoviesController < ApplicationController
def index
@movies = Movie.all
end
def show
@movie = Movie.find(params[:id])
end
def new
@movie = Movie.new
end
def create
@movie = Movie.create(movie_params)
if @movie.save
redirect_to "/movies/#{@movie.id}", :notice => "Your movie was saved!"
else
render "new"
end
end
def edit
@movie = Movie.find(params[:id])
end
def update
@movie = Movie.find(params[:id])
if @movie.update_attributes(params[:movie])
redirect_to "/movies"
else
render "edit"
end
end
def destroy
end
private
def movie_params
params.require(:movie).permit(:name, :genre, :year)
end
end
+०१२३५१६४१०: यहाँ मेरी edit.html.erb
<h1>Now Editing:</h1>
<h3><%= @movie.name %></h3>
<%= form_for @movie.name do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<br>
<%= f.label :genre %>
<%= f.text_field :genre %>
<br>
<%= f.label :year %>
<%= f.number_field :year %>
<br>
<%= f.submit "Update" %>
और routes.rb फ़ाइल है
MovieApp::Application.routes.draw do
get "movies" => "movies#index"
post "movies" => "movies#create"
get "movies/new" => "movies#new"
get "movies/:id" => "movies#show"
get "movies/:id/edit" => "movies#edit"
put "movies/:id" => "movies#update"
end
पिछले है, यहाँ rake routes
चलने से उत्पादन है:
Prefix Verb URI Pattern Controller#Action
movies GET /movies(.:format) movies#index
POST /movies(.:format) movies#create
movies_new GET /movies/new(.:format) movies#new
GET /movies/:id(.:format) movies#show
GET /movies/:id/edit(.:format) movies#edit
PUT /movies/:id(.:format) movies#update
कि मेरा अनुमान है कि रूप में अच्छी तरह होगा, और current_url जो संपादित पथ – Doon
धन्यवाद @meager है वापस करने के लिए पोस्ट करेंगे खाली कार्रवाई, लेकिन अब मैं एक '' में फिल्म # संपादित NoMethodError हो रही है: अपरिभाषित विधि # movie_path 'के लिए # <# <कक्षा: 0x007ff4cb263e38>: 0x007ff4c99f6300> ''? – TomK
आपने अपने मार्गों का नाम नहीं दिया है। आपको या तो 'प्राप्त करें' फिल्मों का उपयोग करने की आवश्यकता है "=>" फिल्में # इंडेक्स ", जैसे:" फिल्में ", या, सही बात, बस अपने सभी मार्गों को फेंक दें और केवल 'संसाधन: फिल्में' का उपयोग करें। – meagar