我正在构建一个包含四种不同用户类型的库存管理应用程序:admin,employee,manufacturer,transporter.我还没有开始编码,但这就是我的想法.制造商和运输商与has_many有关:通过与产品的多对多关联,如下所示:
class Manufacturer < ActiveRecord::Base
has_many :products
has_many :transporters, :through => :products
end
class Product < ActiveRecord::Base
belongs_to :manufacturer
belongs_to :transporter
end
class Transporter < ActiveRecord::Base
has_many :products
has_many :manufacturers, :through => :products
end
Run Code Online (Sandbox Code Playgroud)
所有四种用户类型都可以登录,但它们将具有不同的权限和视图等.但是,我不认为我可以将它们放在同一个表(用户)中,因为它们会有不同的要求,即:供应商制造商必须拥有帐单邮寄地址和联系信息(通过验证),但管理员和员工不应该拥有这些字段.
如果可能的话,我希望有一个登录屏幕,而不是4个不同的屏幕.
我不是要求确切的代码来构建它,但我无法确定实现它的最佳方法.任何想法将不胜感激 - 谢谢!
有没有人有关于它如何工作的示例代码?看起来它应该非常简单,但Twilio文档对于SMS/Rails来说很稀疏.
我有一个简单的"post"模型,带有"body"列和"from"列.我只想在列表中显示SMS消息.我最接近工作的是这样的事情:
#posts_controller.rb
class PostsController < ApplicationController
def new
@post = Post.new(:body=>"?",:from=>"?")
@post.save
end
end
#twilio sms url: ...myappurl/posts/new
Run Code Online (Sandbox Code Playgroud)
这会创建一个新帖子,但"from"和"body"值显然是"?".如何将Twilio SMS"From"和"Body"值传递给rails控制器?
任何想法或推动正确的方向?谢谢!
我的应用程序使用Rails 2后端,Heroku用于托管,Paperclip用于文件上传,Amazon S3用于文件存储.
现在用户可以使用paperclip + s3上传文件 - 这完美无瑕.上传后,其仪表板上会出现一个图标,链接到文件位置(在s3存储桶中).单击该图标时,浏览器将在新窗口中打开该文件(对于大多数文件类型 - PDF,MP3,img等).我想要在用户点击文件图标(如Gmail附件)时自动下载文件,而不是打开.该解决方案应该能够适用于任何文件类型和跨浏览器.
有没有帮助在rails中执行此操作,还是需要javascript?我真的被困在这个上,所以任何指向正确方向的东西都会非常感激.谢谢!
我正在构建一个应用程序,允许评论5个独特的模型(帖子,照片,事件等),还有2或3个在路上.目前,每个模型都有一个相关的评论模型(PostComments,PhotoComments,EventComments等),尽管评论本身在所有模型中通常是相同的.
我最近发现了多态关联的强大功能,在Railscast#154中得到了很好的解释,它基本上将许多模型组合成一个模型,将许多表组合成一个表.
虽然多态关联会清理代码和冗余,但它们如何影响性能?我对数据库优化知之甚少,但似乎需要更长的时间来查询通用注释表中1,000,000行的注释,而不是特定注释表中的200,000行.是否值得切换到多态关联(虽然应用程序仍然处于开发阶段的早期阶段),还是应该继续为每种类型的评论制作模型/表格?
我正在为我的Ruby on Rails应用程序构建一个推荐程序,这样用户就可以共享包含其用户ID(app.com/?r=ID)的链接.如果访问者登陆应用程序主页时存在引荐来源ID,则主页上的注册表单包含一个隐藏字段,该字段填充了引荐者的ID.然后,如果被推荐的访客注册,则控制器检测ID并在推荐表中创建新的推荐.它的工作原理,以及这段代码:
@referrer = User.find(params[:r]) rescue nil
unless @referrer.nil?
@referral = Referral.new(:referrer_id=>@referrer.id)
end
Run Code Online (Sandbox Code Playgroud)
非常简单的东西,但它很容易打破(例如:如果访问者离开主页,引用者ID丢失).我觉得cookie可能是一种更健壮的方法,其中包含引用者ID的cookie存储在被推荐用户的计算机上x天.这是非常普遍的,特别是对于像Groupon这样的联盟计划,但我从未使用过cookie,也不知道从哪里开始.
此外,有没有什么好的方法来掩盖或更改推荐系统的URL?代替具有app.com/?r=1842,我宁愿像app.com/x39f3 < -与给定用户相关联的数字的随机生成的序列,而不R =?部.
任何帮助是极大的赞赏.谢谢!