Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将对象添加到收藏夹对象数组中_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 将对象添加到收藏夹对象数组中

Ruby on rails 将对象添加到收藏夹对象数组中,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在一个列出许多事件的网站上工作,我希望登录的用户能够将事件添加到个人喜爱/观看的事件列表中 我有 event.rb has_and_belongs_to_many :profiles 及 profile.rb has_and_belongs_to_many :events map.resources :events, :member => { :create_calendar => :post } <%= form_for( current_user.profile.

我正在一个列出许多事件的网站上工作,我希望登录的用户能够将事件添加到个人喜爱/观看的事件列表中

我有

event.rb

has_and_belongs_to_many :profiles

profile.rb

has_and_belongs_to_many :events
map.resources :events, :member => { :create_calendar => :post }
<%= form_for( current_user.profile.events(event) ) do |f| %>
  <%= f.submit "Add to Calendar" %>
<% end %>
def create_calendar
  @event = Event.find(params[:event_id])
  current_user.profile.events << @event
end
如果用户已登录,我希望在每个事件视图上添加一个按钮,将该事件添加到当前用户的配置文件中。基本上,此功能:


current_user.profile.events我不是has_的粉丝,而_属于很多人,所以我的建议是放弃它,做一个新的模型。也许是这样的

class SavedEvent < ActiveRecord::Base
  belongs_to :user
  belongs_to :event
end
然后要保存它:

def save_event
  @saved_event = SavedEvent.new(params[:saved_event]
  @saved_event.user = current_user
  @saved_event.save
end

当然,你可以把这部分内容删减一点,让它变得更安静一点,但这将是我着手做这件事的主要基础。

同意。制作另一个模型比重载profile的含义更容易理解。
def save_event
  @saved_event = SavedEvent.new(params[:saved_event]
  @saved_event.user = current_user
  @saved_event.save
end