2016-06-08 3 views
0

내가 내 레일 응용 프로그램에서 오류가 발생했습니다레일 알 수없는 속성

enter image description here

코드는 다음과 같습니다

/user.rb

모델
def payMovie 
    @order = OrderMovie.new 
    @user = User.find(session[:user_id]) 
    @order.user = @user 
    @movie = Movie.find params[:id] 

    puts "sssssssssssss" 
    puts @movie.inspect 

    @order.price = @movie.movieprice 
    @order.currency = @movie.currency 
    @order.movie << @movie 
    if @order.save 
     flash[:notice] = t("flash.saved") 
     redirect_to :back 
    else 
     redirect_to :back 
    end 
    end 

oders_controller.rb
class User < ActiveRecord::Base 
    has_many :comment 
    has_and_belongs_to_many :knowledgeprovider 
    has_and_belongs_to_many :channel 
    belongs_to :oder_movie 

모델/order_movie.rb

class OrderMovie < ActiveRecord::Base 
    has_one :user 
    has_one :movie 
end 

무엇이 문제 일 수 있습니까? 당신의 도움에 대한

감사

UPDATE 여기

@order.inspect 
<OrderMovie id: nil, price: nil, currency: nil, user_id: nil, created_at: nil, updated_at: nil, movie_id: nil> 

@user.inspect 
<User id: 3, firstname: "Felix", lastname: "Hohlweglersad" 

enter image description here

답변

1

사용자 모델 관계가 잘되지 않습니다이 migratuons 실행 order_movies있는 사용자와 영화의 관계를 통해, 당신의 사용자는 has_many : order_movies가 속하지 않아야합니다 : order_movies. 이 오류는 잘못된 관계를 정의했기 때문에 사용자 테이블에 order_movie_id 외래 키가 없음을 나타냅니다. 그래서 변경 :

belongs_to :order_movie 

귀하의 사용자 모델에서

has_many :order_movies 

합니다.

+0

이 작업을 수행했지만 여전히 같은 오류가 발생했습니다 .. – Felix

+0

hasMone에서 관계를 변경하면 has_one에서 belongs_to로 변경됩니다. –

+0

죄송합니다. 고마워 이제 괜찮아! – Felix

1

는 solution.You은 belongs_to에 잘못된 철자 한된다 order_movie 문

class User < ActiveRecord::Base 
    has_many :comment 
    has_and_belongs_to_many :knowledgeprovider 
    has_and_belongs_to_many :channel 
    belongs_to :order_movie 


당신이 order_movie 외래 키가없는경우에 당신이 has_many을 만들려고 노력하는 경우

add_column :users,:order_movie_id,:integer 
    add_foreign_key :users,:order_movies 
+0

예 정확히 하나의 문제입니다. 고마워. 하지만 여전히 동일한 오류 보류 중 – Felix

+0

위의 두 가지 문장의 결과를 제공하십시오 user = User.find (session [: user_id]) order.user = @user –

+0

사용자 테이블에 외래 키가 있습니까? –