मुझे अपने घोंसले संसाधनों को ठीक से बनाने और प्रदर्शित करने के लिए पिछले कुछ दिनों में समस्या आई है। स्टैक ओवरफ्लो पर बहुत सारे प्रश्न हैं और इस पर बहुत सारे ब्लॉग पोस्ट हैं, लेकिन वे सभी रेल या पुराने मुद्दे के पुराने संस्करण से निपटने लगते हैं। मैं उस बिंदु पर हूं जहां एक बार मैं अंततः कुछ ठीक करता हूं, एक और त्रुटि पॉप अप होती है। मैंने इसे एक बेवकूफ गलती या टाइपो को नोटिस करने के लिए अनुभवहीन होने के कारण मुझे कम कर दिया है।घुमावदार संसाधनों और मिलान नियंत्रक को रूट करना
मेरे पास एक जॉब्स मॉडल है जो एक स्थान मॉडल से संबंधित है। स्थल ठीक काम करता है और मैं भी अपने स्थान के नीचे अपने नेस्टेड जॉब्स इंडेक्स में जाने और नए और संपादन फॉर्म लाने में सक्षम होने के लिए भी प्राप्त कर चुका हूं, लेकिन 'शो' या नए नौकरी बनाने के लिए undefined method
त्रुटि उत्पन्न हुई । बहुत सारी खोज के बाद मुझे एक ही समस्या के साथ बहुत कुछ मिला और उन्होंने अपने फिक्स को लागू करने का प्रयास किया, लेकिन अब मुझे रूटिंग त्रुटि मिल रही है।
मेरा अधिकांश भ्रमित @ @ से बाहर निकलने के समय से आता है, इसका उपयोग कब किया जाता है: इसके बजाय स्थल_आईडी: आईडी में पैरा, इत्यादि। प्रत्येक उदाहरण में मुझे लगता है कि एक अलग तरीका है और मैं ऐसा नहीं कर सकता उनमें से मेरे लिए काम करते हैं।
सही दिशा में कोई भी टक्कर बेहद सहायक होगी।
रूटिंग त्रुटि
No route matches {:action=>"show", :controller=>"jobs", :venue_id=>#<Venue id: 1, name: "Burger Chef", city: "Chicago", state: "Illinois", areacode: 60614, created_at: "2013-02-05 21:33:41", updated_at: "2013-02-06 23:01:05", avatar_file_name: nil, avatar_content_type: nil, avatar_file_size: nil, avatar_updated_at: nil>}
routes.rb
Twist::Application.routes.draw do
resources :users
devise_for :users
resources :venues do
resources :jobs
end
end
jobs_controller.rb
class JobsController < ApplicationController
# GET /jobs
# GET /jobs.json
before_filter :get_venue
def get_venue
@venue = Venue.find(params[:venue_id])
end
def index
@jobs = @venue.jobs
respond_to do |format|
format.html # index.html.erb
format.json { render json: @jobs }
end
end
# GET /jobs/1
# GET /jobs/1.json
def show
@job = @venue.job.find(params[:id])
if params[:id]
@venue = Venue.where(:id => params[:id]).first
@jobs = @venue.job_url
else
@jobs = Jobs.all
end
respond_to do |format|
format.html # show.html.erb
format.json { render json: @job }
end
end
# GET /jobs/new
# GET /jobs/new.json
def new
@job = @venue.jobs.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @job }
end
end
# GET /jobs/1/edit
def edit
@job = @venue.job.find(params[:venue_id])
end
# POST /jobs
# POST /jobs.json
def create
@job = @venue.jobs.new(params[:job])
respond_to do |format|
if @job.save
format.html { redirect_to :action => :show, :id => @venue.id,
notice: 'Job was successfully created.' }
format.json { render json: [@venue, @job],
status: :created,
location: [@venue, @job] }
else
format.html { render action: "new" }
format.json { render json: @job.errors, status: :unprocessable_entity }
end
end
end
# PUT /jobs/1
# PUT /jobs/1.json
def update
@job = Job.find(params[:id])
respond_to do |format|
if @job.update_attributes(params[:job])
format.html { redirect_to @job, notice: 'Job was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @job.errors, status: :unprocessable_entity }
end
end
end
# DELETE /jobs/1
# DELETE /jobs/1.json
def destroy
@job = Job.find(params[:id])
@job.destroy
respond_to do |format|
format.html { redirect_to jobs_url }
format.json { head :no_content }
end
end
end
venues_controller.rb
class VenuesController < ApplicationController
# GET /venues
# GET /venues.json
def index
@venues = Venue.all
if params[:name]
@user = User.where(:name => params[:name]).first
@venues = @user.venues
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @venues }
end
end
# GET /venues/1
# GET /venues/1.json
def show
@venue = Venue.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @venue }
end
end
# GET /venues/new
# GET /venues/new.json
def new
@venue = Venue.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @venue }
end
end
# GET /venues/1/edit
def edit
@venue = Venue.find(params[:id])
#if session[:user_id] != @venue.user_id
# flash[:notice] = "Sorry, you cannot edit this venue."
# redirect_to(venues_path)
# =>end
end
# POST /venues
# POST /venues.json
def create
@venue = Venue.new(params[:venue_id])
respond_to do |format|
if @venue.save
format.html { redirect_to @venue, notice: 'Venue was successfully created.' }
format.json { render json: @venue, status: :created, location: @venue }
else
format.html { render action: "new" }
format.json { render json: @venue.errors, status: :unprocessable_entity }
end
end
end
# PUT /venues/1
# PUT /venues/1.json
def update
@venue = Venue.find(params[:id])
respond_to do |format|
if @venue.update_attributes(params[:venue])
format.html { redirect_to @venue, notice: 'Venue was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @venue.errors, status: :unprocessable_entity }
end
end
end
# DELETE /venues/1
# DELETE /venues/1.json
def destroy
@venue = Venue.find(params[:id])
@venue.destroy
respond_to do |format|
format.html { redirect_to venues_url }
format.json { head :no_content }
end
end
end
job.rb
class Job < ActiveRecord::Base
attr_accessible :description, :name, :requirement, :venue_id
validates :name, :presence => true, :length => { :minimum => 3 }
belongs_to :venue
end
venue.rb
class Venue < ActiveRecord::Base
attr_accessible :areacode, :avatar, :city, :name, :state
has_many :jobs
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end
/jobs/show.html.erb
<p id="notice"><%= notice %></p>
<% @job = Job.find(param[:venue_id]) %>
<p>
<b>Name:</b>
<%= @job.name %>
</p>
<p>
<b>Company:</b>
<p><%= @venue.name %></p>
<p><%= link_to @job.venue.name, venue_path(@venue) %></p>
<p>
<b>Job:</b>
<%= @job.job_id %>
</p>
<p>
<b>Description:</b>
<%= @job.description %>
</p>
<p>
<b>Requirement:</b>
<%= @job.requirement %>
</p>
<%= link_to 'Edit', edit_venue_job_path(@venue, @job) %> |
<%= link_to 'Back', venue_jobs_path(@venue, @job) %>
**/jobs/index.html.erb**
<div class="usergrid">
<% jobs = @venue.jobs %>
<% @venue.jobs.each do |job| %>
<div class = "user venue">
<p>
<h2><%= link_to job.name, venue_job_path(@venue) %></h2>
<%= link_to 'Edit', edit_venue_job_path(@venue, job) %><br/>
<%= link_to 'Delete', venue_jobs_path(@venue, @job), :confirm => 'Are you sure?', :method => :delete %>
</div>
<% end %>
<div style="clear:both"></div>
</div>
<%= link_to 'New Job', new_venue_job_path(@venue) %>
मुझे लगता है कि एहसास ...
- यह एक बहुत स्पष्ट ठीक हो सकता है, लेकिन रेल के लिए नया किया जा रहा है कि निश्चित रूप से अभी भी कुछ बुनियादी बातों है कि मैं पूरी तरह से समझ में नहीं आता है।
- यदि मैंने बहुत अधिक या बहुत कम कोड पोस्ट किया है तो कृपया मुझे बताएं, मुझे पूरा यकीन नहीं है कि इसके लिए कम से कम कितना आवश्यक है।
- एक से अधिक त्रुटि हो सकती है, वहां बहुत सारी त्रुटियां हो सकती हैं, और उनमें से कई मेरे द्वारा इसे ठीक करने की कोशिश कर रहे थे जब मैं वास्तव में नहीं जानता था कि मैं क्या कर रहा था। मैं इसे स्वयं ठीक करना चाहता था, लेकिन जब मैं वास्तव में इसे और भी खराब कर रहा हूं तो मैं इसके साथ गड़बड़ी को संभाल नहीं सकता।
मैं मार्गों के साथ खिलवाड़,, वास्तविक लिंक और मार्गों को बदलने के दायरे के साथ खिलवाड़ की कोशिश की है, और इन त्रुटियों कि मैं मिल सकता है और उनमें से कोई मदद करने के लिए लग रहा था के लिए आम सुधारों की के रूप में कई।
धन्यवाद!
क्या आप अधिक स्टैकट्रैक शामिल कर सकते हैं? ऐसा लगता है कि आप अपने मॉडल के बजाय अपने मॉडल_आईडी के बजाय अपना मॉडल पास कर रहे हैं। – drewinglis
@drewinglis यह कोई समस्या नहीं होनी चाहिए, जैसे कि अगर url_helper को किसी आईडी की अपेक्षा होने पर एक उदाहरण प्राप्त होता है, तो वह '# to_param' को कॉल करने का प्रयास करेगा जो डिफ़ॉल्ट रूप से एआर ऑब्जेक्ट्स आईडी – pjam