Railsを初めて使用しました。私は学生がログインし、試験にサインアップできるアプリを作ろうとしています。試験でRailsの他のモデルのデータでフォームに自動的に記入する方法
t.string "name" t.integer "ects"
t.integer "year" t.integer "professor_id"
その関係:教授とhas_one :exam
の関係:belongs_to :professor
教授が持っている
件名には、次の列があります。私はそれに関連している次のモデルとコントローラを持っています次の列:
t.string "first_name"
t.string "last_name"
t.string "title"
試験との関係:対象と
t.date "start_date"
t.string "department"
t.integer "professor_id"
t.integer "subject_id"
その関係:教授とbelongs_to :subject
の関係:サインアップしてbelongs_to :professor
の関係:
has_many :signups
has_many :signupers, through: :signups, class_name: 'User'
has_many :subjects
試験は、次の列があります。対象とhas_many :exams
の関係
サインアップには次の列があります:
t.integer "exam_id"
t.integer "user_id"
試験との関係:ユーザーとbelongs_to :exam
の関係:belongs_to :user
私はすでにすべてを接続し、new_signup_pathにリンクされている試験ショービューにサインアップ]ボタンを作ってきました。ユーザーがリダイレクトされたときにデータがフォームに表示されるようにしたい。科目名、教授名、開始日をフォームに表示したい。したがって、ユーザーは[送信]ボタンのみをクリックする必要があります。
私が働くこのフォームを、作ってきたが、それは空です:
<%= form_for @signup do |f| %>
<%= f.fields_for :exam do |e| %>
<%= e.label :start_date %>
<%= e.date_field :start_date %>
<% end %>
<%= f.submit "Submit", class: "btn btn-large btn-primary" %>
<% end %>
私も教授の名前(教授モデル)とサブジェクト名(件名モデル)を持っていると思います。
これは私のサインアップコントローラです:
before_action :signed_in_user, only: [:index, :new, :create]
def index
if current_user.role == 1
@signups = Signup.all
else
@signups = Signup.where(user_id:current_user.id)
end
end
def new
@signup = Signup.new
end
def create
@signup = Signup.new(signup_paramas)
@signup.user_id = current_user.id
if @signup.save
flash[:success] = "You signed up for the exam."
redirect_to @signups
else
render :new
end
end
private
def signup_paramas
params.require(:signup).permit(:user_id).merge(exam_id: @exam.id)
end
私は2週間のために、この問題をグーグルでてきたが、私は解決策を見つけることができませんでした。 何か助けていただければ幸いです。URLパラメータリダイレクトするようにexam_idを追加し、サインアップボタンを
http://apidock.com/rails/FormHelper/text_field最初のコメントを参照 – Fallenhero