2011-10-09 50 views
0

我有一个页面列出了我的事件数据库中的所有事件。我想创建一个按钮,显示“我的事件”,当按下后重新加载页面,但只显示属于current_user的事件。我试图做这样的事情:如何制作在页面上使用数据的按钮?

<%= button_to "My Events", events_path(:my_events => true) %> 

,然后我要if语句添加到过滤@events如果my_events是真实的events_controller指数。但是,由于某种原因,此按钮只会创建一个新事件。

有没有更好的方法来做到这一点?

回答

0

这会做你想要什么:
在您的活动控制器添加一个动作find_my_events:
find_my_events
@events = current_user.events(:all)
render :action => 'index'
end

现在,在你看来,创建的form_tag和其关联与find_my_events:
(你可以在你的routes.rb中创建一个新的路由或使用:controller =>'events',:action =>'find_my_even ts',我更喜欢前者)
将submit_tag添加到表单中。

所以,现在当你提交表单时,页面刷新并获取当前用户的事件。

您还可以使用布尔隐藏字段将表单提交给您的索引操作。现在在您的索引操作中检查该布尔字段是否设置为true,如果是,则显示current_user的事件或其他事件。

+0

帮手会去哪里?另外,它如何知道在助手被调用时加载哪个页面? –

+0

这没有奏效。我得到这个错误: 未定义的局部变量或方法'find_my_events_path'为#<#:0x000001032e35c0> –

+0

仍然没有。就像你说的,我在我的活动控制器中创建了这个动作。然后,我将上面显示的按钮放在index.html.erb事件视图中。这是我得到的错误:未定义的局部变量或方法'find_my_events'为#<#:0x00000105143d80> –

相关问题