Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 从未调用Rails更新方法_Ruby On Rails - Fatal编程技术网

Ruby on rails 从未调用Rails更新方法

Ruby on rails 从未调用Rails更新方法,ruby-on-rails,Ruby On Rails,我面临着一个我无法解决的问题。 我试图更新一个对象,但没有成功。Rails调用“编辑”方法,但从不调用“更新”方法 这是我的控制器: class JobsController < ApplicationController def new @job = Job.create(company_id: current_user.recruiter.company.id) redirect_to edit_job_url(@job) end def edit @job = Job.fi

我面临着一个我无法解决的问题。 我试图更新一个对象,但没有成功。Rails调用“编辑”方法,但从不调用“更新”方法

这是我的控制器:

class JobsController < ApplicationController

def new
 @job = Job.create(company_id: current_user.recruiter.company.id)
 redirect_to edit_job_url(@job)
end

def edit
 @job = Job.find(params[:id])
 session[:edit_job_id] = @job.id
end

def update
 @job = Job.find(params[:id])
 @job.update_attributes(job_params)

 if @job.save
  redirect_to @job
 else
  render 'edit'
 end
end

private
def job_params
 params.require(:job).permit!.merge(company_id:   current_user.recruiter.company.id)
end

end
嵌套形式:

<form>
<input type="text" data-model="DataSkill" id="live_data_skill_id" class="live_data_search"/>
<input type="hidden" id="data_skill_id"/>

<select id="data_skill_level">
  <option value=""></option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>    
</select>

Expérience :
<input type="text" id="data_skill_start_year"/>
<input type="text" id="data_skill_end_year"/>

<input type="hidden" id="old_skill_id"/>
<a href="#" class="btn" id="add_data_skill">Enregistrer</a>

1.
2.
3.
4.
5.
体验:


1.
2.
3.
4.
5.

form_for@job,url:{action:“update”}请在编辑文件中尝试此操作。这将解决问题。谢谢你的回答。但是我已经尝试过这个解决方案,但仍然不起作用:(你在routes.rb中为这个控制器定义了路由吗?你能展示一下你是如何定义路由的吗?我为(@job,:url=>job_path,method::put)添加了我的routes表单_,你能试试吗。
mount Bootsy::Engine => '/bootsy', as: 'bootsy'
root 'static_pages#home'
devise_for :users, controllers: { registrations: 'users/registrations', :omniauth_callbacks => "users/omniauth_callbacks" }
resources :companies
resources :jobs
resources :candidates
resources :addresses
resources :job_languages, only: [:create, :update, :destroy]  
resources :job_skills, only: [:create, :update, :destroy]
resources :job_study_types, only: [:create, :destroy]
resources :job_certifications, only: [:create, :destroy]
resources :candidate_languages, only: [:create, :update, :destroy]  
resources :candidate_experiences, only: [:create, :edit, :update, :destroy]
resources :candidate_studies, only: [:create, :edit, :update, :destroy]
resources :candidate_skills, only: [:create, :edit, :update, :destroy]
resources :candidate_trainings, only: [:create, :edit, :update, :destroy]
<form>
<input type="text" data-model="DataSkill" id="live_data_skill_id" class="live_data_search"/>
<input type="hidden" id="data_skill_id"/>

<select id="data_skill_level">
  <option value=""></option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>    
</select>

Expérience :
<input type="text" id="data_skill_start_year"/>
<input type="text" id="data_skill_end_year"/>

<input type="hidden" id="old_skill_id"/>
<a href="#" class="btn" id="add_data_skill">Enregistrer</a>
<form>
<select id="data_language_id">
  <option value=""></option>
  <%= DataLanguage.ordered.each do |lang| %>
    <option value="<%= lang.id %>"><%= lang.name %></option>
  <% end %>
</select>
<select id="data_language_level">
  <option value=""></option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>    
</select>
<input type="hidden" id="old_language_id"/>
<a href="#" class="btn" id="add_data_language" data-url="job_languages">Enregistrer</a>