rails使用按钮将id添加到表中

时间:2013-12-20 08:48:34

标签: ruby-on-rails ruby ruby-on-rails-4

我正在使用rails 4。 我需要将user.id和place.id添加到subsriptions表。 我得到了:

  class AddPlaceidToUserid < ActiveRecord::Migration
    def change
      create_table :subscriptions do |t|
        t.integer :placeid
        t.integer :userid
      end
    end
  end

在places_cntroller.rb中我得到了

def addid
  @sub = Subscription.new(sub_params)
  @sub.userid = current_user.id
  @sub.placeid = place.id
end

private

def sub_params
  params.require(:subscription).permit(:placeid, :userid)
end

在我获得的地方的index.html.erb中:

<%= button_to "subscribe", :controller => :places, 
                           :action => 'addid',
                           :method => :post %>

在我得到的路线中:

resources :places do
  post :addid, :on => :collection
end

当我点击按钮时,我找不到参数:订阅错误。什么shuold我改变了?或者我可以在哪里找到类似的教程?

1 个答案:

答案 0 :(得分:1)

class AddPlaceidToUserid < ActiveRecord::Migration
  def change
    create_table :subscriptions do |t|
      t.integer :place_id
      t.integer :user_id
    end
  end
end

无需收藏。

resources :places do
  post :addid
end

你的控制器

def addid
  @sub = Subscription.new(sub_params)
  if @sub.save 
     ...
  else 
     ...
  end 
end