Ruby on rails 无法将电影与Rails表单中的流派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

我正在尝试通过rails中的表单将电影与特定类型链接起来。我在db中植入了几个流派实例,并创建了一个select标记,理论上,它应该根据植入的流派为电影提供流派id

以下是我的电影迁移:

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