Rails - 通过链接

时间:2016-01-31 15:04:30

标签: ruby-on-rails ruby if-statement hyperlink conditional

我的应用程序中有两个表。用户表和活动 - 用户有很多活动(确切地说是3个)。

我有一个主页,上面有3个按钮。如果用户按下按钮1,我想导航到活动索引页面并将属性activity_type设置为= 1.如果用户按下按钮2,我想导航到活动索引页面并将activity_type设置为= 2等。现在我有:

<%= link_to 'Personal Activity', user_activities_path(:user_id => current_user.id, :activity_type => 1) %>
<%= link_to 'Physical Activity', user_activities_path(:user_id => current_user.id, :activity_type => 2) %>
<%= link_to 'Community Activity', user_activities_path(:user_id => current_user.id, :activity_type => 3) %>

在我的activities / index.html.erb文件中,我想要有三个条件:

If the activity_type = 1 for current_user
  Do X
Elsif the activity_type = 2 for current_user
  Do Y
Else
  Do X
End

它似乎无法识别我在链接中包含的activity_type参数。我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果这些链接真的带您进入index页面,那么您可以activity_type访问params[:activity_type]。另外,我建议您将逻辑放在controller#action

def index
  @activity_type = params[:activity_type]

  case @activity_type
  when 1
    #your logic
  when 2
    #your logic
  when 3
    #your logic
  else
    #some code
  end
end

答案 1 :(得分:0)

这些参数会附加到参数上,您可以像这样访问它们:

activity_type = params[:activity_type]

或者只是这样:

if params[:activity_type] == 1
  Do something
else
  Do something
end