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

謝謝你的迴應。這看起來越來越像我需要重新定義其他地方的步驟。 –