我想在爲我的標準表格填充Event
模型時添加一些額外的參數(類別)。他們不在我的事件表中(我在Events
和Category
模型中都有表categories_events
和hmbtm
)。這裏是我的_form代碼:在rails中使用check_box_tag傳遞額外的參數
<% @categories.each do |category| %>
<div class="field">
<%= check_box_tag(:category, category.id) %>
<%= label_tag(:category, "#{category.name}") %>
</div>
<div class="actions">
<%= f.submit %>
<% end %>
我傳遞類別new
行動 - 這是簡單的Category.all
這是我在事件控制器代碼
def new
@event = Event.new
@categories = Category.all
end
def create
@event = Event.new(event_params)
@category_id = Category.find(params[:category])
respond_to do |format|
if @event.save
format.html { redirect_to @event, notice: 'Event was successfully created.' }
format.json { render action: 'show', status: :created, location: @event }
else
format.html { render action: 'new' }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end
後來我想將category_id和event_id放入categories_events中,但我有NoMethodError
undefined method `category_id' for #<Event:0x374c268>
和@ event.safe是問題
參數看起來像這樣
{"utf8"=>"✓",
"authenticity_token"=>"stL+sdIhxttrk3KjkLJsuCXubjaDpNBbrLYtpjv8clw=",
"event"=>{"name"=>"asdsa",
"place"=>"asdas",
"description"=>"dsadsa"},
"commit"=>"Create Event",
"category"=>"2"}
我認爲這個問題是太多的參數在新的(event_params),但看着參數括號告訴我,這不該爲了讓它成爲軌道可接受的問題不成問題。
錯誤堆棧跟蹤: http://pastebin.com/kQK1fni6
更新event_params
def event_params
params.require(:event).permit(:name, :place, :description, :category_ids)
end
請你分享'event_params'方法和錯誤堆棧跟蹤。 –
def event_params params.require(:event).permit(:name,:place,:description,:category) end app/controllers/events_controller.rb:32:in' block in create' app/controllers/events_controller.rb:31:在'創建' 第31行:respond_to 第32行:if @ event.save –
請您分享您收到的錯誤的完整錯誤堆棧跟蹤。並將其添加到問題中,而不是發表評論。它在那裏更具可讀性。 –