Rails最佳实践控制器或模型

时间:2015-07-15 23:38:51

标签: ruby-on-rails ruby ruby-on-rails-3

我试图根据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) 实例变量?

1 个答案:

答案 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