[英]Ruby on Rails: Passing a value to the model
我已經有一段時間在MVC流程中遇到問題了,我想我即將具備此功能。 如何從視圖或控制器向模型傳遞值,以便可以在模型中執行邏輯檢查?
我想將值傳遞給page_title或設置其值。 然后,我將使用該值來確定應該從steps函數使用哪個數組。
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(@subject) do |f| %>
<%= render "base_#{@subject.current_step}", :f => f %>
我試圖弄清楚是否應該在調用此渲染的同一行中傳遞值,或者是否需要在form_for之前傳遞它。 我現在都混了。
我也可以在控制器中調用params [:title],但到目前為止,我還沒有找到將值發送給模型的方法。
我需要做的就是能夠選擇steps值,或將其設置在其他位置。
感謝您的時間。
如果要訪問已渲染部分中的@subject.steps
,則需要在render
調用之前的任何位置調用@subject.page_title
。
我不確定自己的用例在哪里,但是如果steps
采用了title參數,則相對於使用另一種方法設置主題實例的“狀態”而言,則更容易理解。
同樣,這聞起來像表示格式邏輯,可能在視圖或視圖助手中效果更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.