2014-10-31 105 views
0

我有一个模型页面,它有许多参数。我想根据“name”列的值显示特定的参数。什么是最好的方法来做到这一点?在视图中显示特定记录

我将所有Page.parametes转换为hash param[:name] = value,因此在View中我可以使用<%= param[:name] %>,但在Model代码中这看起来不太好。

def self.get_real(id) 
    params = {} 
    data = Parameter.where(page_id: id) 
    data.each do |var| 
    params[var.parameter.to_sym] = var.value 
    end 
    params 
end 
+0

您不应该使用关键字'params',它是控制器/视图中用来检索'GET'和'POST'参数的一种方法。这可能会在某些时候导致冲突。 – MrYoshiji 2014-10-31 18:34:52

+0

你为什么想这样做?这是一个非常糟糕的想法,相反,您应该在控制器中创建一个变量并将其用于视图。 – Surya 2014-10-31 21:02:25

回答

0

如果你有网页对象的ID,那么:在控制器

def show # or whatever your action may be 
    @page_parameters = Page.find(params[:id]).parameters 
end 

视图

<% @page_parameters.each do |p| %> 
    <%= p.name %> : <%= p.value %> 
<% end %> 

我做没有看到一个原因(在这种情况下)co将一个对象转换成一个原语。

+0

谢谢,但我不想在一个循环中显示它们 - 只是在特定位置的特定VALUE。 – Michal 2014-11-01 08:28:40