ruby-on-rails – 不在belongs_to关联中填充的外键(class_id)
我是rails的新手,并在rails3(beta4)上构建一个小型测试应用程序.
我使用Authlogic来管理用户会话(以标准方式设置为per this tutorial) 我有脚手架和设置卡模型(基本上是一个帖子),并为belongs_to和has_many关系设置基本的活动记录关联 user.rb has_many :cards card.rb belongs_to :user 我将我的外键列添加到我的卡表:user_id,默认为1 一切都很有效.我已经完成了我的观点,我可以看到关联,卡可以属于各种用户,这一切都很棒. 但在创建新卡时,我似乎无法抓住当前的活跃用户 cards_controller.rb def new @card = Card.new @card.user = current_user respond_to do |format| format.html # new.html.erb format.xml { render :xml => @card } end end current_user在应用程序控制器available to view here中定义 user_id传递NULL并且没有任何内容写入数据库user_id列,使其默认为1而不是实际登录用户的ID. 我尝试过像@user = current_user这样的显而易见的事情 这可能是一件非常简单的事情,但今天是我第一次带轨道的真实日子 – 谢谢! 解决方法
现在,它出现在您为新操作设置用户时,而不是在创建操作上.
我看到2个选项,后者更好: >如果您在新操作中继续离开@ card.user = current_user,则可以设置隐藏的输入字段卡[user_id],其中可以包含当前用户的ID.这是一个非常糟糕的主意,因为任何人都可以将他们想要的东西扔进那个领域.>尝试在创建操作中的@ card.save行之前移动@ card.user = current_user.这样,用户就无法使用它,并且当它实际即将被保存时,它会将其设置为卡对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |