1

我一直在MVC流的问题现在有一段时间了,我想我已经接近了这个功能。我如何从视图或控制器向模型传递值,以便我可以在模型中执行逻辑检查?Ruby on Rails:将值传递给模型

我想传递一个值,或设置page_title的值。然后我将使用该值来确定步骤函数应该使用哪个数组。

subject.rb中

def current_step 
    @current_step || steps.first 
    end 

    def page_title(the_title) 
     @page_title = the_title 
    end 

    def steps 
     if page_title == 'Baseline' 
     %w[sfmfa ] 
     elsif page_title == 'Treatment Completion' 
     %w[smfa phq whoqol_bref ] 
     elsif page_title == '6 Month' 
     %w[smfa phq ] 
     else 
     %[#{self.page_title}] 
     end 

    end 

这里是视图的一部分:

baseline.html.erb

​​

我想弄清楚,如果我要传递一个值在我称之为渲染的同一行中,或者如果我需要在form_for之前执行它。我现在都混在一起了。

我也可以在控制器中调用params [:title],但到目前为止我还没有找到将该值发送到模型的方法。

我需要的是能够选择步骤值或将其设置在其他地方。

谢谢你的时间。

回答

0

如果您想要在呈现的部分内访问@subject.steps,那么您需要在调用render之前的任何地方拨打@subject.page_title

我不完全确定你的用例在这里,但如果steps取得了一个标题参数,跟随其他方法设置你的主题实例的“状态”会更容易。

此外,这听起来像呈现格式化逻辑,可能只是在视图或视图助手更好。

+0

谢谢你的回应。这看起来越来越像我需要重新定义其他地方的步骤。 –