Ruby on Rails用户设置

时间:2009-10-07 21:16:26

标签: ruby-on-rails associations authlogic models

目前,我在rails应用程序上有一个6模型ruby,我添加了authlogic。 总体设置是

User :has_many categories, topics,messages
Categories has_many topics,
Topics has_many messages 

(使用和相应的belongs_to链接相对)。

当我尝试访问current_user.categories.find(2)时,控制器中没有返回任何结果。

此外,当我尝试运行此

current_user.topics.find(params[:topic_id]).messages.build

然后,

@msg = current_user.messages.build(params[:message])
@msg.save

它不会从has_many中保存user_id。

在添加current_user指令之前,该程序的所有功能都已正常工作。

我在设置时犯了错误吗?还是执行?

因为构建后关联没有保存,我以后可以在模型中添加user_id字段吗?

对所有问题表示抱歉,并提前致谢。

2 个答案:

答案 0 :(得分:1)

我认为你最好的选择是一步一步走。 current_user返回什么?该用户的ID是否与您的数据库中的一个匹配?该用户是否有任何类别?他们中的任何人的身份是2吗?

如果您可以将问题隔离到链式调用中的单个图层,则调试起来会容易得多。

答案 1 :(得分:0)

谢谢凯尔。 我已经使用模型中的过滤器解决了问题,而不是使用控制器通过关联在创建时分配它。 Current_user只使用authlogic返回当前用户的记录。 我喜欢项目鞠躬的地方,可能会在一些视觉调整,安全性和更多css :)之后部署它。 无论你正在开发什么,回调和过滤器都是惊人的。 此外,如果需要从application_controller获取变量到模型,请使用美元符号ruby变量,而不是类实例变量(at-sign)。 与滚动自己的Php或sintra应用程序相比,Rails非常简单。 此外,rails应用程序使用了多少个模型?