在视图中显示特定记录
问题描述:
我有一个模型页面,它有许多参数。我想根据“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
答
如果你有网页对象的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
您不应该使用关键字'params',它是控制器/视图中用来检索'GET'和'POST'参数的一种方法。这可能会在某些时候导致冲突。 – MrYoshiji 2014-10-31 18:34:52
你为什么想这样做?这是一个非常糟糕的想法,相反,您应该在控制器中创建一个变量并将其用于视图。 – Surya 2014-10-31 21:02:25