请教rails能保存一条记录,但是该记录中的一个字段一直是null,无法保存

要保存的数据不是从页面中输入的,是在controller中赋值的。

[code="ruby"]feed = Feed.new
feed.user_id = follower.id
feed.carer_id = user.id
feed.carer_name = user.name
[color=red][b]feed.blog_category = blog.blog_category[/b][/color]
feed.content = blog.content
feed.created_time = blog.created_at
feed.save[/code]

feed的其它字段都能正确保存,只有blog_category字段保存后在数据库中为null,
blog.blog_category是有值的,feed.blog_category也有值。
就是保存到数据库后为null.

求教是出了什么问题阿?

哈哈,这就对了。因为有了attr_accessor :blog_category, 赋值操作把值给了@blog_category,而不是表中那个字段对应的属性。
把accessor改名或者这样赋值:feed[:blog_category] = "ruby"

blog_category什么类型的

同意楼上的

  1. feed和blog的blog_category字段是相同的类型吗?
  2. 把blog.blog_category的值弄出来(类型数值),在console里赋值然后保存一下看看,有什么错误提示
  3. feed.save(false)

暂时想到这么多

哈哈,那么,也就是说保存的时候没问题了,因为返回true说明保存成功。

console里读出来呢?

feed.blog_category 有值吗?

有的话,重启console然后Feed.last.blog_category看看有没有

那么,在mysql里能更新或者插入吗?

[code="ruby"]INSERT INTO feeds (blog_category) VALUES ('ruby') WHERE id = 1;

UPDATE table SET blog_category= 'ruby' WHERE id=1;[/code]

然后,就不知道了,放弃啦 :cry:

Model Feed里面有没有对blog_category=的重载?