我试图根据Rails最佳实践重构我的代码。现在我遇到一个问题,我在控制器上有两个实例变量,我无法将它们移动到模型中。我们在这里:
feedbacks_controller.rb
@employee
根据Rails Best practice Move Model Logic into the Model其他内部的任务需要转移到模型中,我怀疑我将如何在模型中启动 var myBtn: UIButton = UIButton()
myBtn.setImage(UIImage(named: "line"), forState: .Normal)
myBtn.frame = CGRectMake(0, 0, 70, 70)
myBtn.addTarget(self, action: "myBtnAction:", forControlEvents: .TouchUpInside)
self.navigationItem.setLeftBarButtonItem(UIBarButtonItem(customView: myBtn), animated: true)
实例变量?
答案 0 :(得分:1)
如果你有员工和反馈之间的关系,你可以做这样的事情
如果你有has_one关系
@client_feedback = @employee.feedbacks.new(screen_name: @screen_name, feedback: @feedback)
@client_feedkback.save
如果你有has_many关系
@employee.feedbacks << Feedbacks.new(screen_name: @screen_name, feedback: @feedback)
@employee.save
关于其他字段(客户端和位置ID)似乎您有reduntant数据。尽量将这些数据保存在一个地方。
<强> ADDED 强>
在你的模型中你有client_id和location_id,如果你真的需要它们在反馈模型上你可以做类似的事情
@employee.feedback = Feedback.new(screen_name: @screen_name, feedback: @feedback, client_id : @employee.client_id, location_id:@employee.location_id )
@employee.save