このような単純な質問をすることについてお詫びする必要があると思いますが、Railsガイドにはますます不満が増えています。彼らは私の質問に答えると確信していますが、彼らは私が実際にどのように理解するための十分な文脈を提供していません彼らは私に与えているものを適用します。私は間違った言葉やフレーズを探しているだけかもしれませんが、Googleは大いに助けません。免責事項を前に、私は先に進んで質問します:モデルデータをレールに取り込む
私はImage
そのHABTM Album
を持っています。これをサポートするために、image_id
とalbum_id
フィールド(他はありません)のalbums_images
テーブルがあります。私の人生にとって、イメージフォームの部分をどのように埋め込むかを理解できないので、ユーザーは新しくアップロードされたイメージが属するアルバムを選択できます。
私はRailsを学んでいますので、私は本当に基本がほしいです。私は100種類の方法でこれを行うための素晴らしいプラグインがあると確信していますが、まず基本を学びそこから構築したいと思います。部分的に私のフォームはかなり教科書です:
<% form_for(@image, :html => { :multipart => true }) do |f| %>
# All the basics you'd expect to see.
<% end %>
私の最も最近の試みは、私が試した他のバリエーションよりも良く機能しないが、それは次のようになります。もう一度
<p>
<%= f.label :album_id %>
<%= f.select(:album_id, current_user.albums, :id, :name) -%>
</p>
、I私が求めている質問のシンプルさを認識し、私が見つけたものを読んだが、私はそれを完全な解決策にまとめることができなかった。それを行うには多くの方法があるようですが、それぞれについて真の議論、賛否両論、またはより大きな文脈でそれらを実際に使用する方法はありません。
ありがとうございました。
更新日:メモとコードの修正のためにいくつかのキーがあります。まず、画像とアルバムの間にHABTMの関係があります。いずれのモデルテーブルも、他方を直接参照するFKを有していない。次に、アルバムコレクションにはcurrent_user.albums
(上記で修正)としてアクセスする必要があります。ユーザhas_many
アルバムとアルバムbelongs_to
ユーザ。
UPDATE:以下theIVの要請、現時点では、このコードで:
22: <p>
23: <%= f.label :album_id %>
24: <%= f.select(:album_id, current_user.albums.collect {|a| [a.name, a.id]}) -%>
25: </p>
私はこのエラーを取得する:
undefined method `album_id' for #<Image:0x1042ec110>
私はライン24にエラーが発生します。
エラーの種類を教えてください。または、開発ログの出力の一部を投稿しますか? – theIV
それは事です、エラーは私がどのバリエーションを使用するかに依存します。しかし、しばしば、「album_id」に何らかの種類のマージエラーや欠落したメソッドエラーがありました。現時点では、このコードで: 22:\t
23:\t \t <%= f.label:album_id%> 24:\t \t <%= f.select(:album_id、current_user.albums.collect { | | [a.name、a.id]}) - %> 25:\t
私はこのエラーを取得する: #<画像のための「 未定義のメソッド 'album_id:0x1042ec110> 私はそれが役に立てば幸い。これは私が期待していたよりもはるかにイライラしています。 –申し訳ありませんが、コメントでコードブロックが許可されると仮定しました。元の投稿に更新を追加します。 –