Ruby on rails fullcalendar rails:针对不同事件和地点的不同日历
我想使用基于Adam Shaw的jQuery fullcalendar插件的gem“fullcalendar rails”来组织我的应用程序的事件 我阅读了Fernando Perales写的有用且写得很好的文章,该文章链接在readme.md文件中。 由于我想在我的Ruby on rails fullcalendar rails:针对不同事件和地点的不同日历,ruby-on-rails,json,fullcalendar,Ruby On Rails,Json,Fullcalendar,我想使用基于Adam Shaw的jQuery fullcalendar插件的gem“fullcalendar rails”来组织我的应用程序的事件 我阅读了Fernando Perales写的有用且写得很好的文章,该文章链接在readme.md文件中。 由于我想在我的rails 5应用程序中使用fullcalendar-rails,而且我是json新手,因此我想问一些问题 我的事件模型有一个位置属性,即事件举行的位置。 我的目标是为不同的地方制定不同的日历,因为每个地方都有自己的活动 我的想法是
rails 5
应用程序中使用fullcalendar-rails
,而且我是json
新手,因此我想问一些问题
我的事件
模型有一个位置
属性,即事件举行的位置。
我的目标是为不同的地方制定不同的日历,因为每个地方都有自己的活动
我的想法是在事件索引页面中插入以下表单:
<%= form_tag(events_path, method: :get, id: "search-event-place") do %>
<%= text_field_tag :search, params[:search], placeholder: "Search a place" %>
<%= submit_tag "Search", class: "btn btn-primary" %>
<% end %>
<% if @events.present? %>
<div id="calendar"></div>
<% end %>
如果在事件
模型中定义了搜索
方法后,我将index.json.builder
文件使用的实例变量@events
定义为@events=Event.search(params[:search])
,它会起作用吗搜索方法将在事件模型中定义如下:
def index
if params[:search]
@events = Event.search(params[:search])
else
@events = nil
end
end
def self.search(search)
where("place ILIKE ?", "#{search}")
end
RESTful事件资源的索引页是否是定义@Events
的正确位置?
如果转到:localhost:3000/events.json
或:localhost:3000/events
,我将看到哪些事件
我主要关心的一个问题是:由于RESTful Events资源的show
操作对应于id=1
的事件的url/Events/1
,我想知道,对于index.json.builder
文件中的每个事件,是否会使用生成url(如/events/1.html
)的html格式正确路由我。事实上,按照common rails的实践,我会在app/views/events/show.html.erb
最后:我的用户使用jQuery日期选择器选择事件的日期,因此属性event_date
将保存为字符串,格式为“yy-mm-dd”
:如何设置jsonstart
和end
?start
和end
属性是必需的还是我可以只选择活动的日期?您好!
1.查询
我认为这更适合作为范围
:
scope(:place, ->(search) { where('place LIKE ?', "%#{search}%") })
然后您可以将其与其他查询等链接起来
更新:
此代码应添加到您的事件
-模型中。
然后可以调用Event.place('search-string')。where(sun:true)
或者反过来,它是可链接的
2.控制器
您可以使用索引
操作,即
def index
respond_to do |format|
format.html
format.json do
@events = set_events
end
end
end
def set_events
if params[:place].present?
Event.place(params[:place])
else
Event.all
end
end
如果您有一个events#index
路由,您可以使用扩展名.json
访问它,并从index.json.jbuilder
查看呈现的json
例如,如果您访问/events
,您将看到index.html.erb
和/events.json?place=place1
将所有事件以类似place1
的位置呈现为json
更新
format.html
允许呈现html和json
3.看法
这需要一些决定:
<div class="fullcalendar" data-place="<%= 'place1' %>">
</div>
4.休息
我不理解您对show
的关注,也不理解您所说的日期选取者是什么意思-请详细说明
更新 这次我试着把所有的东西都归纳成一个要点。 请检查它是否有用 你好!! 1.查询 我认为这更适合作为
范围
:
scope(:place, ->(search) { where('place LIKE ?', "%#{search}%") })
然后您可以将其与其他查询等链接起来
更新:
此代码应添加到您的事件
-模型中。
然后可以调用Event.place('search-string')。where(sun:true)
或者反过来,它是可链接的
2.控制器
您可以使用索引
操作,即
def index
respond_to do |format|
format.html
format.json do
@events = set_events
end
end
end
def set_events
if params[:place].present?
Event.place(params[:place])
else
Event.all
end
end
如果您有一个events#index
路由,您可以使用扩展名.json
访问它,并从index.json.jbuilder
查看呈现的json
例如,如果您访问/events
,您将看到index.html.erb
和/events.json?place=place1
将所有事件以类似place1
的位置呈现为json
更新
format.html
允许呈现html和json
3.看法
这需要一些决定:
<div class="fullcalendar" data-place="<%= 'place1' %>">
</div>
4.休息
我不理解您对show
的关注,也不理解您所说的日期选取者是什么意思-请详细说明
更新 这次我试着把所有的东西都归纳成一个要点。
请检查它是否有用 嗨,谢谢你的回复。我编辑了我的原始消息。我最初的目的是让用户有机会通过事件索引页面中的表单搜索他们所在城市的事件。因此,此页面最初不会显示事件。当用户搜索一个地方时,将定义
@events
,并在视图中呈现fullcalendar。我有一个问题:你会把范围
放在你的查询部分(第1部分)的哪里?我对范围不太熟悉。另外,在控制器中,什么对应于format.html
?使用respond_to
和format
意味着如果用户试图访问html
格式或json
格式,您可以在控制器中执行不同的代码。文档建议使用fullcalendar rails
json格式。你认为html的替代方案是什么?另外:您将范围代码放在哪里?html格式仅用于呈现普通页面,与fullcalendar无关。我在回答中的“范围”下加了一个,将它添加到模型中。谢谢,我会通读你的要点,我需要时间来理解