我的导轨应用程序出错了
代码如下所示:
oders_controller.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
模型/ user.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
可能是什么问题?
感谢您的帮助
更新
@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"
答案 0 :(得分:1)
这是解决方案。你在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外键,则运行此migratuons
add_column :users,:order_movie_id,:integer
add_foreign_key :users,:order_movies
答案 1 :(得分:1)
您的用户模型关系不好,如果您尝试制作has_many:通过order_movies用户和电影之间的关系,您的用户必须has_many:order_movies not belongs_to:order_movies。 因此,此错误告诉您在用户表中没有order_movie_id外键,因为您定义了错误的关系。所以改变:
belongs_to :order_movie
到
has_many :order_movies
在您的用户模型中。