J'ai suivi ces questions (one et two) sur la façon d'ajuster mes méthodes avec l'utilisateur actuel seulement afin qu'ils aient l'user_id spécifique pour éditer, mettre à jour, créer et détruire leurs produits .@ mymodel.user = current_user ne fonctionne pas pour moi
Voici mon code:
Ma Migration:
class CreateProducts < ActiveRecord::Migration
def self.up
create_table :products do |t|
t.string :name
t.date :date
t.decimal :price, :default => 0, :precision => 10, :scale => 2
t.integer :user_id
t.float :latitude
t.float :longitude
le contrôleur:
class ProductsController < ApplicationController
before_filter :authenticate_user!
def index
@products = Product.all
def show
@product = Product.find(params[:id])
def new
@product = Product.new
def edit
@product.user = current_user
@product = Product.find(params[:id])
end
def create
@product.user = current_user
@product = Product.new(params[:product])
def update
@product.user = current_user
@product = Product.find(params[:id])
def destroy
@product.user = current_user
@product = Product.find(params[:id])
@product.destroy
Modèle de produit:
class Product < ActiveRecord::Base
attr_accessible :name, :date, :price, :tag_list
belongs_to :user
end
alors le modèle utilisateur Devise:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
has_many :products, :dependent => :destroy
J'essaie de le soumettre et puis tout à coup cette affiche:
NoMethodError à créer # ProduitsController
undefined method `user=' for nil:NilClass
Qu'est-ce que je manque ou faire du tort?
Merci d'avance!
Oh wow je ne connaissais pas la commande, je pensais que toutes les actions se produisaient en même temps, cela fonctionne et je peux le créer mais je peux toujours comme les autres utilisateurs, détruire et éditer d'autres produits d'utilisateurs. Comment puis-je corriger cela? – LearningRoR
Voir les ajouts à ma réponse. –
Merci beaucoup Monsieur! – LearningRoR