将当前对象参数添加到用户

时间:2016-02-04 21:07:51

标签: ruby-on-rails

嗨,我是Rails的新手,我正在努力做一件容易的事情。

我正在开发一款与足球相关的应用。我有很多用户可以拥有很多俱乐部。我正在尝试实现一种方法来保留当前用户俱乐部的内存,以便当某个俱乐部被设置为当前俱乐部影响所述俱乐部时用户采取的每个操作(类似于着名的会话“current_user”) 。

用户可以通过返回主页并点击他想要控制的俱乐部名称,轻松切换到控制一个俱乐部或另一个俱乐部。

我尝试了很多方法,但似乎无法使其发挥作用。

最近我试图在我的用户模型中添加一列“current_club_id”,但我无法修改此参数的值(它保持为null,无论我做什么)

这是我最新的试用版:

在我的用户/节目中,我有<%render @clubs%>与_club:

<tr>
  <td class="club">
    <span class="nom"><%= button_to club.nom, {:action => "assign_active_club", :controller => "users",  :id => current_user.id, :user => User.find(current_user.id) , :active_club_id => club.id } %></span>
  </td>
</tr>

和我的users_controller:

def assign_active_club
      @club = Club.find(params[:active_club_id])
      @user.define_active_club(params[:active_club_id])
      @user.save
      flash[:success] = "The active club of the user " + @user.name.to_s + " is nom " +@club.name.to_s
      redirect_to @club
    end

最后在user.rb

 def define_active_club(id)
    self.current_club_id = id
  end

用户不保存。请帮忙!

1 个答案:

答案 0 :(得分:0)

您正在通过&#39;用户&#39;通过按钮作为参数,但您实际上并没有设置&#39; @ user&#39;控制器中的实例变量。如果你在视图中摆脱这种情况会发生什么:

:user => User.find(current_user.id)

在控制器中使用它:

@user = User.find(params[:id])