在我看來,用戶需要使用collection_select輸入一些數據。在Rails視圖中爲用戶輸入分配變量
我知道可以在控制器中使用params[]
訪問數據。
但是,如何在選擇值後訪問用戶權限的值?
這就是我想要做(不工作):
<%= f.collection_select :photo_type, Upload::PHOTOTYPE, :to_s, :to_s, :include_blank => false, :id => "phototype"%>
<%= f.hidden_field :photo_id, :value => Photo.find_by_type(params[:photo_type]).id %>
我的問題是我怎麼訪問的collection_select
的:photo_type
?
編輯
我已經使用jQuery嘗試,但我不知道如何將JS變量導出到視圖:
<script type="text/javascript">
$("#phototype").change(function() {
var phototype = $('#phototype').val()
});
</script>
UPDATE
我有兩個表在我的數據庫中:
表1:photos
- ID
- photo_type_id(參照
id
在photo_types
表)
表2:photo_types
- ID
- photo_type
用戶可以從下拉菜單中選擇照片類型,我想通過用戶輸入來查找photo_types
表photo_type_id
然後將photo_type_id
到photos
表
據codeit,我改變了我的控制器一樣這個:
def create
@photo = photo.new(params[:photo])
photo_type_id = PhotoType.find_by_type(params[:photo_type]).id
respond_to do |format|
if @photo.save
format.html { redirect_to @photo, notice: 'photo was successfully created.' }
format.json { render json: @photo, status: :created, location: @photo }
else
format.html { render action: "new" }
format.json { render json: @photo.errors, status: :unprocessable_entity }
end
end
end
這裏需要一些javascript,這是一個觸發你的collection_select變化的函數,它會更新photo_id hidden_field的值。 – MrYoshiji 2013-02-20 18:34:50
@MrYoshiji,是的,我試過了,看到更新的問題。 – 2013-02-20 19:00:40