在我的控制,我有:如何在控制器中設置變量集,在其他類中可用?
def index
@grid = UsersGrid.new(params[:users_grid]) do |scope|
scope.where(admin: false).page(params[:page]).per_page(30)
end
@grid.assets
if (current_user && current_users.admin?)
@show_column = true
else
@show_column = false
end
end
在我的網格類:
class UsersGrid
include Datagrid
scope do
User.order("users.created_at desc")
end
column(:abc, :header => "abc?", :html => true, :if => proc {@show_column == true}) do |user|
image_tag("abc.png", title: "abc") if user.abc
end
end
所以在控制器我設置,並在課堂上應該顯示列:abc
取決於是否對或錯。這是錯誤的,因爲是一個實例變量,並且在網格類中不可用。所以它是零。我應該如何改變這個工作?
@show_column必須參數Grid類 – Kamesh
您可以通過使用會話 例如試試這個在控制器'session [:show_column] = true'而不是@show_column = true,並且在模型中:if => proc {session [:show_column] == true}'而不是:if => proc {@show_column == true } –
你不應該演變這樣的問題。它使現有的答案無效。改爲提出另一個問題。 –