加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 不在belongs_to关联中填充的外键(class_id)

发布时间:2020-12-17 03:44:07 所属栏目:百科 来源:网络整理
导读:我是rails的新手,并在rails3(beta4)上构建一个小型测试应用程序. 我使用Authlogic来管理用户会话(以标准方式设置为per this tutorial) 我有脚手架和设置卡模型(基本上是一个帖子),并为belongs_to和has_many关系设置基本的活动记录关联 user.rb has_many :car
我是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.这样,用户就无法使用它,并且当它实际即将被保存时,它会将其设置为卡对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读