所述“创建新条目"指的是“创建新条目".多对多关系页面 [英] The "create new entry" page on a many-to-many-relationship
问题描述
我是Rails的新用户.这可能是一个非常基本的问题,但我需要帮助
I am a new rails user. This is probably a very basic question, but I need help
我正在制作一个具有多对多关系的Bands表,Festivals表和Participations表的应用程序.我的模型如下:
I am making an app that has a Bands table, a Festivals table, and a Participations table in a many-to many relationship. My models are as follows:
class Band < ActiveRecord::Base
attr_accessible :year, :genere, :name, :country
has_many :participations
has_many :festivals, :though => :participations
end
class Festival < ActiveRecord::Base
attr_accessible :city, :name, :country
has_many :participations
has_many :bands, :through => :participations
end
class Participation < ActiveRecord::Base
attr_accessible :year
belongs_to :band
belongs_to :festival
end
当我使用rails server
执行我的应用程序时,我可以正常访问localhost:3000/bands和/festivals,并且新的band页面可以完美运行.当我访问localhost:3000/participation时,它会正常加载(并显示一个包含ID和年份的空表),但是单击新的参与项会显示以下错误:
When I excecute my app with rails server
I can access localhost:3000/bands and /festivals normally, and the new band page works perfectly. When I access localhost:3000/participations it loads normally (and shows an empty table with both ids and the year) but clicking on new participation shows me the following error:
undefined method `bands_id' for #<Participation:0xba1a5760>
Extracted source (around line #16):
13:
14: <div class="field">
15: <%= f.label :bands_id %><br />
16: <%= f.number_field :bands_id %>
17: </div>
18: <div class="field">
19: <%= f.label :festivals_id %><br />
Trace of template inclusion: app/views/participations/new.html.erb
Rails.root: /home/User/apps/festnum
我是Rails的新用户,不确定如何更改参与表的视图控制器. 谢谢!
I am a new rails user and am unsure how to change the view controller of the participations table. Thanks!
PD:我还想知道如何在参与创建页面中添加一个下拉菜单,其中包含已经创建的音乐节和乐队.
PD: I would also like to know how to add a drop down menu in the participations creation page with the festivals and bands that have already been created.
以前的问题已解决.但是,我仍在寻找一种方法,可以在参与创建页面上创建一个下拉菜单,其中包含已经创建的节日和乐队,如果可以的话,可以使用节日名称而不是ID.另一个问题:访问创建新的参与"页面时,我在字段中填写了我已经创建的节日和乐队的数据(两个字段的ID为1,我在数据库中使用了SELECT语句,并确保这些条目已经存在),并且出现以下错误:
The previous issue has been resolved. However, I am still looking for a way to make a drop down menu in the participations creation page with the festivals and bands that have already been created, and if it could be with the festival name and not the id even better. Another issue: When I access the create new participation page, I fill in the fields with data of a festival and a band that I already created (ID 1 for both fields, I used a SELECT statement in my database and made sure those entries already exist) and I get the following error:
没有ID找不到节日.
Couldn't find festival without an ID.
我很确定错误在这里:(在参与者控制器处)
Im pretty sure the error is here: (At the participations controller)
def create
@participation = Band.new(params[:band])
@participation.festivals << Festival.find(params[:festival_id])
respond_to do |format|
if @participation.save
format.html { redirect_to @participation, notice: 'Participation was $
format.json { render json: @participation, status: :created, location:$
else
format.html { render action: "new" }
format.json { render json: @participation.errors, status: :unprocessab$
end
end
结束
能再帮我一次吗?
推荐答案
字段名称必须为单数:
14: <div class="field">
15: <%= f.label :band_id %><br />
16: <%= f.number_field :band_id %>
17: </div>
(您有<%= f.number_field :bands_id %>
)
这篇关于所述“创建新条目"指的是“创建新条目".多对多关系页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!