Ruby on rails 无法将电影与Rails表单中的流派id链接
我正在尝试通过rails中的表单将电影与特定类型链接起来。我在db中植入了几个流派实例,并创建了一个select标记,理论上,它应该根据植入的流派为电影提供流派id 以下是我的电影迁移:Ruby on rails 无法将电影与Rails表单中的流派id链接,ruby-on-rails,forms,select,Ruby On Rails,Forms,Select,我正在尝试通过rails中的表单将电影与特定类型链接起来。我在db中植入了几个流派实例,并创建了一个select标记,理论上,它应该根据植入的流派为电影提供流派id 以下是我的电影迁移: class CreateMovies < ActiveRecord::Migration def change create_table :movies do |t| t.string :name t.integer :year t.string :direc
class CreateMovies < ActiveRecord::Migration
def change
create_table :movies do |t|
t.string :name
t.integer :year
t.string :director
t.string :lead_actor
t.references :genre, index: true, foreign_key: true
t.timestamps null: false
end
end
end
表格如下:
<%= form_for(@movie) do |f| %>
<% if @movie.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@movie.errors.count, "error") %> prohibited this movie from being saved:</h2>
<ul>
<% @movie.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :genre_id %><br>
<%= f.select(:genre_id, @genres.map {|p| [ p.name, p.id ] }) %>
</div>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :year %><br>
<%= f.number_field :year %>
</div>
<div class="field">
<%= f.label :director %><br>
<%= f.text_field :director %>
</div>
<div class="field">
<%= f.label :lead_actor %><br>
<%= f.text_field :lead_actor %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我所有的下拉框都正确显示,但当我进入数据库并检查电影类型id时,它等于“nil”
完全控制器:
class MoviesController < ApplicationController
before_action :set_movie, only: [:show, :edit, :update, :destroy]
# GET /movies
# GET /movies.json
def index
@movies = Movie.all
end
# GET /movies/1
# GET /movies/1.json
def show
end
# GET /movies/new
def new
@movie = Movie.new
@genres = Genre.all
end
# GET /movies/1/edit
def edit
end
# POST /movies
# POST /movies.json
def create
@movie = Movie.new(movie_params)
respond_to do |format|
if @movie.save
format.html { redirect_to @movie, notice: 'Movie was successfully created.' }
format.json { render :show, status: :created, location: @movie }
else
format.html { render :new }
format.json { render json: @movie.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /movies/1
# PATCH/PUT /movies/1.json
def update
respond_to do |format|
if @movie.update(movie_params)
format.html { redirect_to @movie, notice: 'Movie was successfully updated.' }
format.json { render :show, status: :ok, location: @movie }
else
format.html { render :edit }
format.json { render json: @movie.errors, status: :unprocessable_entity }
end
end
end
# DELETE /movies/1
# DELETE /movies/1.json
def destroy
@movie.destroy
respond_to do |format|
format.html { redirect_to movies_url, notice: 'Movie was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_movie
@movie = Movie.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def movie_params
params.require(:movie).permit(:name, :year, :director, :lead_actor)
end
end
你是说该应用程序运行正常,但当你使用rails控制台检查时,它显示为零?你能发布完整的控制器吗?该应用程序运行正常,但它没有使用流派id保存电影。。。denys281刚刚发布了控制员刚刚发现了。。。。参数要求:movie.permit:name,:year,:director,:controller中的主角需要:genre_i你是说应用程序运行良好,但当你使用rails控制台检查它时,它显示为nil?你能发布完整的controller吗?应用程序运行良好,但电影没有使用genre_id保存。。。denys281刚刚发布了控制员刚刚发现了。。。。参数要求:movie.permit:name,:year,:director,:controller中的主角需要:genre_i你是说应用程序运行良好,但当你使用rails控制台检查它时,它显示为nil?你能发布完整的controller吗?应用程序运行良好,但电影没有使用genre_id保存。。。denys281刚刚发布了控制员刚刚发现了。。。。参数要求:电影。许可证:姓名,:年份,:导演,:控制器中的主角需要:类型id