如何在 Helper 中访问 View 的请求参数?
我的 View events/index7
设置了参数date_selected:
<div><%= link_to 'View' , events_index7_path(:date_selected => date), :class => 'btn btn-mini'%></div>
我的助手是 app/helpers/calendar_helper.rb
这是在 Helper I 中我想要访问它的位置的图片。
我试过这个:
classes << "dayselect" if day == DateTime.strptime(params[:date_selected], "%Y-%m-%d")
我收到这个错误:
undefined local variable or method `params' for #<CalendarHelper::Calendar:0x007f8d215671f0>
或者我应该以不同的方式将日期传递给助手吗?
感谢您的帮助!
最佳答案
params
是一个 Controller 方法,属于ActionController:Metal
http://api.rubyonrails.org/classes/ActionController/Metal.html#method-i-params
通过将此 Controller 方法公开为助手,可以让 View 接触 params
。
class FooController < ApplicationController
helper_method :params
然后,在您的 View 中,您可以使用 params
作为参数调用此助手。 我的助手(参数)
但是,等等,这违反了 MVC 原则。 View 根本不应该接触参数。所有这些工作都应该在 Controller 级别完成。如果参数不正确怎么办?您需要 Controller 来响应,而不是将责任传递给 View 。
因此,如果您需要在视野中触摸它,那是一种气味。回顾整个过程,一定有更好的安排。
关于ruby-on-rails - Rails - 如何从帮助程序的 View 中访问请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20163922/