Не могли бы я любезно посоветовать мне, как передать идентификатор с помощью новых и новых действий. Я пробовал много способов добиться этого, но, к сожалению, не успел.передать параметр id новому действию на создание - Rails 4
, что я стремлюсь сделать это, когда Ищущему (пользователь) заполняет приложение и приложение не в валидаций, я хочу
new form to render with the advert_id passed
через
У меня есть объявление работу, в которой я прошел advert_id на кнопку применить
advert/show.html.erb
<div class="advert_summary">
<ul class="content">
<li><%= @advert.currency %><%= @advert.salarystart %> - <%= @advert.currency %><%= @advert.salaryend %> <%= @advert.category_period.name %></li>
<li>Job Type: <%= @advert.category_jobtype.name %></li>
<li>Job Ref: #<%= @advert.reference %></li>
<li>Posted: <%= @advert.created_at.strftime("%b %d, %Y") %></li>
<li>Deadline: <%= @advert.appdeadline.strftime("%b %d, %Y") %></li>
</ul>
</div>
<button><%= link_to 'Apply for job', new_form_path(advert_id: @advert.id) %></button>
я имею advert_id как скрытое поле в моей форме (бланк заявления на работу)
forms/_form.html.erb
<div>
<h2>Application Form</h2>
<%= simple_form_for(@form) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input_field :firstname, value: current_user.firstname, label: "firstname", placeholder: "first name" %>
<%= f.input_field :lastname, value: current_user.lastname, label: "lastname", placeholder: "last name" %>
<%= f.input_field :tel, value: current_user.tel, label: "number", placeholder: "number" %>
<%= f.input_field :email, value: current_user.email, label: "email", placeholder: "email" %>
<%= f.hidden_field :advert_id, value: params[:advert_id] %>
</div>
<div class="form-actions">
<%= f.button :submit, 'Submit Application' %>
</div>
<% end %>
</div>
в моем контроллере forms_controller.rb я заявил ниже для create action
class FormsController < ApplicationController
respond_to :html, :xml, :json
before_action :set_form, only: [:show, :edit, :update, :destroy]
def new
@advert = Advert.find(params[:advert_id])
@user = current_user
@form = Form.new
@search = Advert.search(params[:q])
@adverts = @search.result(distinct: true)
end
def create
@user = current_user
@form = Form.new(form_params)
@advert = @form.advert
@form.user_id = current_user.id
@advert = @form.advert
if @form.save
redirect_to application_submitted_path
else
redirect_to :action => :new, :advert_id => @form.advert_id
# render :new, :advert_id => @form.advert_id
# redirect_to :action => :new, :advert_id => @form.advert_id
# redirect_to user_advert_path(@form.advert.user, @form.advert)
# respond_with(@form)
end
end
end
models
advert.rb
has_many forms
form.rb
belongs_to advert
belongs_to user (jobseeker)
user.rb (jobseeker)
has_many forms
schemas.rb
create_table "forms", force: true do |t|
t.integer "advert_id"
t.integer "user_id"
end
create_table "adverts", force: true do |t|
t.string "title"
t.text "content"
t.integer "salarystart"
t.integer "salaryend"
t.string "reference"
end
create_table "users", force: true do |t|
t.string "email",
t.string "firstname"
t.string "lastname"
end
, когда ищущий работу завершает форму заявки (формы/_form.html.erb) и проверка терпит неудачу ищущая работа (пользователь) является относится к новой форме с advert_id прошел через
redirect_to :action => :new, :advert_id => @form.advert_id
это направляет меня к новой форме, я могу видеть advert_id был принят через url, но форма не будет отправляться, а сообщения об ошибках: не отображается.
мог один любезно сообщить мне, как успешно пройти через идентификатор действия новых и создать или где я буду неправильно большое спасибо
спасибо Су много! – ARTLoe
@ARTLoe его приятно помогать кому-то. – Lymuel