保存与现有模型的关联

时间:2016-03-07 20:19:03

标签: ruby-on-rails ruby associations

我正在建立一个电影票务应用程序,其中我有电影,每部电影有很多放映时间。

这是我的电影课:

class Movie < ActiveRecord::Base
  has_many :showtimes, dependent: :destroy

end

和showtime类

class Showtime < ActiveRecord::Base
  belongs_to :movie

end

在我的showtime表单中,我有以下字段

<%= f.collection_select :movie, Movie.all, :id, :title %>

在我的showtime控制器中,我有以下创建方法

  def create
    @showtime = Showtime.new(showtime_params)
    if @showtime.save
      redirect_to @showtime, notice: 'Showtime was successfully created.'
    else
      render :new
    end
  end

  def showtime_params
    params.require(:showtime).permit(:movie_id, :start_time)
  end

我这是保存该关联的正确方法吗?

2 个答案:

答案 0 :(得分:0)

由于showtime_params允许:movie_id,这是您必须为收集字段提供的名称:

$db = new PDO('dblib:host='.$dbHost.';dbname='.$dbName.';charset=utf8mb4',$dbUser,  $dbPass);
$stmt = $db->prepare('SELECT * FROM customer WHERE email_address = :user ');
$stmt->bindValue(":user", $_SESSION["username"], PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);

答案 1 :(得分:0)

如果您更改为movie_id,但我更喜欢使用options_for选择:

<%= f.select :movie_id, options_for_select(Movie.choices) %>

和你的movie.rb

def self.choices
   options = []
   Movie.find_each do |movie|
     options << [movie.title, movie.id]
   end
   options
end