私はRails has_many:associationを使ってRailsを使うことを学んでいます。私が読んでいるものの大部分は、モデルを設定する方法だけを提供しますが、コントローラのアクションを設定する方法は提供しません。私のアプリは、このトピックを学ぶ目的で非常に基本的です。私はいくつかの垂直的産業をリストアップしたフォームを持っています。 「縦型」を作成すると、その縦型に適用されるアプリのリスト(チェックボックス)から選択するオプションがあります。垂直が作成されると、垂直アプリと選択アプリの関連付けが確立されます。シンプルな必要Has_Many:コントローラコード
私は3つのモデルがあります。ここでは
class App < ActiveRecord::Base
has_many :solutions
has_many :verticals, through: :solutions
end
class Vertical < ActiveRecord::Base
has_many :solutions
has_many :apps, through: :solutions
end
class Solution < ActiveRecord::Base
belongs_to :app
belongs_to :vertical
end
は私のフォームである:ここでは
<%= simple_form_for(@vertical) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :name %>
<%= f.input :description %>
<%= f.association :apps, as: :check_boxes %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
は私verticals_controllerがアクションを作成することです:
def create
@vertical = Vertical.new(vertical_params)
@solutions = @vertical.apps.build(params[:app])
<respond_to code omitted for brevity>
end
def vertical_params
params.require(:vertical).permit(:name, :description, apps_attributes: [ :name, :description, :developer, :mpp, :partner, :website, :app_id[] ])
end
Iから関連付けを作成することができていますレールは次のように操作します:
vertical = Vertical.first
app = App.first
vertical.apps << app
しかし、これはコントローラーで行うのが正しい方法ではないと思いますし、フォームで選択されたアプリパラメータを取得する方法も理解できません。私は、Railsのベストプラクティスに準拠する、基本的でクリーンなコード例を探しています。また、コントローラコードに対処する最新のチュートリアルを教えていただければ幸いです。どうも。