2016-04-11 17 views
0

我是Rails的newby,並試圖在html.erb中使用方法而不是多次寫入相同的查詢。我已經開始使用「Hello,World」;但是,我甚至無法做到這一點。 我做了什麼;相關Rails函數/方法html.erb

def Say() 
    "Hello World" 
    end 
在app /模型/ sample.rb

(樣品是頁面的名稱的方式)和

<% Say %> 

在視圖/樣品/ index.html.erb。顯然,問題在於我看不到任何像「Hello World」這樣的頁面。我該怎麼辦?

+0

你想達到什麼目的? – uzaif

+0

將方法定義到您的'samples_helper.rb'文件或'application_helper.rb'文件中。 – Emu

+0

在控制器中聲明say()方法嘗試調用它.. – uzaif

回答

0

有一些東西在這裏:

  • 不要使用括號是方法名。
  • 模型只是用於管理數據庫或訪問需要數據庫處理
  • 在控制器方法def index添加@say = 'Hello World',然後調用鑑於<%= @say %>也將這樣的伎倆一些數據,但不習慣於這種方法稱爲它通常會導致壞習慣像控制器,而不是模型和助手
  • 對於這件事情,你可以使用模型或輔助的過度使用(我猜「打招呼」只是測試)

也許是最好的是從頭開始教程,看看它如何在rails中處理。在網站上有大量的鐵路資源:http://railscasts.com

即使網站還沒有更新一段時間,我認爲最好的資源是從那裏開始,特別是對於新手。

+0

雖然railscasts處於中斷狀態,或者我們應該說死了嗎? :) –

+0

是的,真的嗎?我還沒有去那裏10年(我有點諷刺),它仍然爲所有新手Rails程序員提供寶貴的資源。或者,也許是最好的。如果沒有更新,這並不意味着它自動過時 – Aleks

+0

最新情節是從3年前。這是一個非常大的時間。我估計一半的材料已經過時,並且所有這些材料都不能與當前的實際情況保持同步。當然,仔細的讀者/觀衆應該進行調整,但這不是我們對新手的期望。他忙於學習繩索,還必須弄清楚爲什麼代碼不起作用:材料開始時是錯誤的,或者技術繼續前進? –

0

有助手目錄。你可以在那裏創建你自己的模塊,或者使用默認模塊:ApplicationHelper,它應該存在於這個目錄中。讓我們創建你自己的模塊。

下面的操作可提供給視圖輔助方法:

module MyCustomHelper 
    def say 
    "Hello World" 
    end 
end 

在視圖中:

<%= say %> 

添加輔助模塊在控制器等(導軌3):

class ApplicationController < ActionController::Base 
    helper :my_custom 
end 

class ApplicationController < ActionController::Base 
helper_method :my_custom 
end 
+0

未定義的局部變量或方法「說」。這就是我得到的。 – cryptokovski

+0

在您的控制器中定義助手,例如: class ApplicationController