2016-04-12 1 views
0

Я новичок в рубине на рельсах. Я пытаюсь отправить данные, выбранные по выбору, но при создании действия ActionController :: InvalidAuthenticityToken поднят, и я не могу понять, почему. если я удаляю строку collection_select из формы, то форма отправляет.ActionController :: InvalidAuthenticityToken, когда я использую collection_select в form_for tag

приложение/просмотров/коды/new.html.erb

<%= form_for @code, url: {action: "create"}, html: {class: "form-horizontal form-bordered"} do |f| %> 

<div class="form-body"> 
<div class="form-group TextBoxContainer"> 
<label class="control-label col-md-2"> Tracking Code(s) </label> 
<div class="col-md-6"> 
<%= f.text_field :code, name: "[code][]" , class: "form-control",placeholder: "Enter Tracking Code(s) for Analytics" %> 
</div> 
<div class="actions col-md-4 div_tag"> 
<button type="button" class="btn dark btn-outline add_another_code"> 
<i class="fa fa-plus"></i> Add Another Code</button> 
</div> 
</div> 
</div> 


<!-- <%= f.collection_select(:webpage_id,Webpage.all, :id, :title,{prompt: true})%> --> 






<%= f.button :submit, class: 'btn red btn-lg' %> 
<% end %> 

это мой codes_controller.rb

приложение/активы/контроллер/codes_controller.rb

class CodesController < ApplicationController 



def new     
@code = Code.new 

end 

def create 

debugger 

@code = Code.new 
@code.webpage_id = params[:webpage_id] 
params[:code].each do |code| 
@code.code << code 

end 

if @code.save 

redirect_to '/' 

else 
render 'new' 

end 

end 


def edit 
@code = Code.find(params[:id]) 
end 

def update 


    @code = Code.find(params[:id]) 


    if @code.update(code_params) 

    redirect_to '/' 
    else 
    render 'edit' 
    end 

end 







private 


def code_params 
params.require(:code).permit(:webpage_id,code:[]) 

end 

end 
+0

Вы пробовали добавить g параметр 'authenticity_token: true' в вашу форму? –

+0

Да, я добавил authenticity_token: true для формирования, но все же ActionController повышает недопустимую ошибку аутентификации. –

ответ

0

Попробуйте это один:

<%= f.select :webpage_id, Webpage.all.map {|c| [c.title, c.id] }, {prompt:"Choose Webpage"} %> 
+0

спасибо 7urkm3n, но все та же проблема. –

+0

Хотя этот код может ответить на вопрос, предоставив дополнительный контекст относительно _why_ и/или _how_ ответа , вопрос значительно улучшит его долгосрочное значение . Пожалуйста, отредактируйте свой ответ, чтобы добавить какое-то объяснение. –

+0

@mohitkumar можно отправить, без 'collect_select', он сохраняет? Также у вас есть 'webpage_id' в вашей таблице« Код »? – 7urkm3n

Смежные вопросы