Я довольно новичок в рельсах, и я не думаю, что полностью понимаю маршрутизацию. Когда я пытаюсь получить доступ к действию редактирования я получаю следующее сообщение об ошибке:Rails Вложенные маршруты ресурсов
ActiveRecord::RecordNotFound in StoreController#show
Couldn't find Gear with id=edit
Rails.root: /Users/dave/rails_projects/outdoor
Application Trace | Framework Trace | Full Trace
app/controllers/store_controller.rb:7:in `show'
Request
Parameters:
{"user_id"=>"104",
"id"=>"edit"}
Show session dump
Show env dump
Response
Headers:
None
Вот мое мнение со ссылкой, которая бросает эту ошибку:
<li><%= link_to "Store Appearance", edit_user_store_path(@user) %></li>
Вот моя вложенная маршрут:
resources :users do
resources :store
end
Вот мой контроллер
class StoreController < ApplicationController
def index
@store = current_user.gears.paginate(page: params[:page])
end
def show
@gears = Gear.find(params[:id]).user.gears.paginate(page: params[:page])
end
def edit
end
def update
end
end
Модель магазин
class Store < ActiveRecord::Base
attr_accessible :storeimage, :storename
belongs_to :user
validates :user_id, :presence => true
end
Модель пользователя
class User < ActiveRecord::Base
attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :userimage, :remove_userimage
has_secure_password
has_many :gears
has_many :comments, :dependent => :destroy
has_one :store, :dependent => :destroy
before_save :create_remember_token
require 'carrierwave/orm/activerecord'
mount_uploader :userimage, UserpicUploader
email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :first_name, presence: true,
length: {:maximum => 50 }
validates :last_name, presence: true,
length: {:maximum => 50 }
validates :email, presence: true,
format: {:with => email_regex},
uniqueness: {:case_sensitive => false}
validates :password, presence: true,
confirmation: true,
length: {within: 6..40}
include Tire::Model::Search
include Tire::Model::Callbacks
def name
first_name + " " + last_name
end
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
Пожалуйста, помогите.
ok, поэтому, если я изменил путь, чтобы включить аргумент @store. Как определить, что в контроллере заданы модели has_one и принадлежит к отношениям? – DaveG
Определите, что в контроллере? – coreyward
Извините, я должен был быть более ясным. Я не был уверен, как определить переменную @store. Я понял это, спасибо за вашу помощь – DaveG