簡體   English   中英

Ruby on Rails:將值傳遞給模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM