2016-03-24 25 views
2

Görünümlerimden birinde bir form yardımcısı kullanıyorum ve kullanıcının bir seçenekler listesinden seçim yapmasını istiyorum. Daha sonra, seçilen seçenek için id eşdeğerini veritabanımda saklamak istiyorum. Ancak, her seferinde bir seçenek seçtiğimde, kimliği kaydedilmiyor ve veritabanı bu özellik için sıfır yazıyor.Form Üzerine Ruby on Rails

<%= f.label :"Team Against" %><br> 
<%= f.select :opposing_team, options_for_select([['Team 1', 1], ['Team 2', 2], ['Team 3', 3]]) %><br> 

Örneğin, ben Şu anda seçenekler yelpazesini seçebilir 'OPPOSING_TEAM' ve ekibi 1 kullanıcı tarafından seçildiğinde, ben OPPOSING_TEAM değeri 1. ile güncellenebilir istiyorum denilen benim tabloda bir sütunu var formda ancak opposing_team değeri her zaman sıfırdır.

düzenleme:

def create 
    @league = League.find(params[:league_id]) 
    @team = @league.teams.find(params[:team_id]) 
    @fixture = @team.fixtures.create(fixture_params) 
    if @fixture.save 
     redirect_to league_team_path(:league_id => @league.id, :id => @team.id) 
    else 
     render 'new' 
    end 

end 
def new 
    @team = Team.find(params[:team_id]) 
    @fixture = Fixture.new 
end 

Bu fikstürler kontrolör oluşur şeydir. Opposing_team, veritabanında bir tamsayıdır.

+0

Denetleyicinizi göster –

+0

"opposing_team" alanının veri türü nedir? – Pavan

+0

hata günlüğünü daha iyi yerleştirin, böylece size yardımcı olabilirsiniz. – titan

cevap

1

Bu sık sorulan bir sorudur ve çoğu zaman yanıt gerekli bir anahtarı eksik strong_parameters olur. böylece, anahtarların listesine :opposing_team eklerseniz

def fixture_params 
    params.require(:fixture).permit(:value, :other_value) 
end 

: Kumandanızda olarak gibi bir şey görünüyor sonunda bir yöntem var mı.

def fixture_params 
    params.require(:fixture).permit(:value, :other_value, :opposing_team) 
end 
+0

Bu ne oldu, ben ekstra bir alan olarak opposing_team ekledim ve fixture_params içine eklemeyi unuttum. Bu çalıştı, teşekkürler! – kjs123

+0

Endişelenmeyin, sorunuzu kapatmak için cevabı kabul etmeyi unutmayın. – Matt