我正在安装Engage!
我按照此处的安装说明进行操作:http://engagecsm.com/readme
我做的安装步骤:
现在,我可以去localhost:3000 /搞
这就是显示的内容:
现在,当我点击“创建主题”时,网站上没有任何反应。我看看我的rails服务器控制台,我看到了:(更容易在这里查看http://i.stack.imgur.com/xKBER.png,在底部找到完整的堆栈跟踪)
所以我开始谷歌搜索,我看到这样的事情:
我已将attr_accessible:user添加到我的用户模型中,但这不起作用。
这是我的用户模型:
另外,我看不到我如何访问Engage模型等,请看这里是我的目录:
有谁知道如何解决这个问题?如果您需要任何其他信息,请告诉我,我将提供截图。
非常感谢任何帮助。谢谢!
编辑#1 - 添加应用程序控制器图片和完整堆栈跟踪
这是我唯一能看到Engage的地方!在控制器中(我目前没有用户控制器)
这是完整的堆栈跟踪:
编辑#2 - 添加参与环境:
此外,我们安装了Devise(和我相信的OmniAuth ......)。因此,我们有“current_user”,但我不知道我们是否有“用户名”或“电子邮件”方法,除非这是标准的Devise或其他东西
编辑#3 - 正如Geoff建议的那样,我查看了topics_controller的第46行。该行如下:
@ topic.votes.create(:user => engage_current_user)
答案 0 :(得分:1)
根据所提供的信息,我担心我不知道发生了什么,但我可以帮助解释一下你所得到的错误。
跟踪中的最后一个非库行是:
engagecsm(1.0.8)app / controllers / engage / topics_controller.rb:46:in“create”
此代码可能位于您的默认gem路径中。如果你在* nix上,可能是/usr/lib/ruby/gems
或/home/user_name/.gem/ruby
。
在处理该行代码时,它会遇到质量分配安全性错误。
它可能会帮助您查看该行代码以查看它所遇到的模型。 请勿在此处发布该行代码。 Engage的许可证!似乎不是标准的开源软件之一,如果您在此处发布,则可能违反了许可证。我可能错了,但比抱歉更安全。
有两个变量可以通过质量分配安全性来提升你。它们是属性和角色。将attr_accessible :user
添加到适当的模型只有在使用默认角色时才有帮助。如果他们使用:admin
角色,则您需要添加attr_accessible :user, as: :admin
。我不认为您的User
模型的属性为:user
,因此可能需要将其添加到其他位置。
如果我不得不猜测你做错了什么,我想你可能已经遵循了安全指南:
http://guides.rubyonrails.org/security.html
在该指南中,他们建议您默认将配置设置为白名单。
config.active_record.whitelist_attributes = true
如果你这样做并且参与!不是用MassAssignment支持写的,这可以解释你所看到的错误。
对不起,我无法确切地解释你的问题,但我希望它有所帮助。
答案 1 :(得分:1)
查看您的问题在topices_controller中 - 因此可能意味着您需要将:user_id
添加到attr_accessible
模型中的Engage/Topic
。
答案 2 :(得分:1)
它是Engage的一员!开发者在这里我可以看到Engage有两个问题!如上所述。
我们已找到第一个解决方案(您使用attr_accessible :user
解决了该解决方案),因此很快就会有一个Rubygems更新。
第二个(主题实际上未显示在索引页面上的事实)与cancan gem中的更改相关联。我们仍然需要找出解决此问题的最佳方法,但快速解决方法是将Cancan版本锁定在Gemfile中,如下所示:gem 'cancan', '1.6.7'
。
我们会在Rubygems上提供解决这些问题的更新时通知您。
干杯!
答案 3 :(得分:0)
我需要将以下行添加到Engage / Vote Model
attr_accessible :user
现在它会说"主题已成功创建。"
但是,我无法看到列出的主题。但是,我相信我已经解决了这部分问题。我去
时能看到这个话题http://localhost:3000/engage/topics/1