小编kcu*_*tin的帖子

使用form_for多选字段和acts_as_taggable_on

我无法找出使用多选字段的预定选项集的正确代码.我希望在用户可以选择的下拉列表中列出技能列表.这是我正在使用的代码,它可以作为单个选择字段正常工作,但不能作为多选:

 <%= form_for(@user, :html => { :class => "form-stacked" } )  do |f| %>
 ...
   <div class="clearfix"><%= f.select :skill_list, options_for_select(["Asst", "dir",      "pres"]), 
     {
    :multiple => true, 
    :class => "chzn-select", 
    :style => "width:450px;" } %></div>
 ...
 <% end %>
Run Code Online (Sandbox Code Playgroud)

有人有什么建议吗?最终,我想在其他地方存储多选表单的所有选项,因为会有一堆,但这是我无法弄清楚的第一个挑战..

谢谢.


编辑

我也尝试过:

:html => { :multiple => true, :class => "chzn-select", :style => "width:450px;" } and it doesnt work either
Run Code Online (Sandbox Code Playgroud)

forms ruby-on-rails form-for acts-as-taggable-on

8
推荐指数
1
解决办法
2万
查看次数

Rails表示发出GET请求而不是POST请求

我正在制作一个Rails 3.1应用程序并且有一个工作正常的注册表单,但我似乎已经改变了一些东西来打破它..我正在使用Twitter bootstrap和twitter_bootstrap_form_for gem.我做了一些与表单字段格式相混淆的更改,但更重要的是,当我提交注册表单来创建新用户时,信息显示在URL中,如下所示:

编辑:这是在最新版本的Chrome和Firefox中发生的

HTTP://本地主机:3000/UTF8 =%E2%9C%93&authenticity_token = UaKG5Y8fuPul2Klx7e2LtdPLTRepBxDM3Zdy8S%2F52W4%3D&用户%5Bemail%5D = kevinc%40example.com&用户%5Bpassword%5D =测试和用户%5Bpassword_confirmation%5D =测试&提交=注册+向上

以下是表单的代码:

    <div class="span7">
      <h3 class="center" id="more">Sign Up Now!</h3>
        <%= twitter_bootstrap_form_for @user do |user| %>
      <%= user.email_field :email, :placeholder => 'me@example.com' %>
      <%= user.password_field :password %>
      <%= user.password_field :password_confirmation, 'Confirm Password' %>
          <%= user.actions do %>
        <%= user.submit 'Sign Up' %>
      <% end %>
        <% end %>
   </div>
Run Code Online (Sandbox Code Playgroud)

以下是UsersController的代码:

    class UsersController < ApplicationController
      def new
       @user = User.new
      end

      def create
        @user = User.new(params[:user])
        if @user.save
         redirect_to about_path, …
Run Code Online (Sandbox Code Playgroud)

forms ruby-on-rails utf-8 ruby-on-rails-3.1

5
推荐指数
1
解决办法
3801
查看次数

HTML <form>标记导致Rails表单提交GET而不是POST请求

我有一个工作正常的表单,直到我添加样式标记(我使用twitter bootstrap).该应用程序是Rails 3.1,我在Mac上.这是一个工作正常,没有问题的表单:

<%= form_for @user do |f| %>
<% if @user.errors.any? %>
  <div class="alert-message error">
    <h2>Form is invalid</h2>
      <ul>
        <% for message in @user.errors.full_messages %>
          <li><%= message %></li>
        <% end %>
      </ul>
  </div>
  <% end %>

  <div class="field">
    <%= f.label :email %>
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %>
    <%= f.password_field :password %>
  </div>
  <div class="field">
    <%= f.label :password_confirmation %>
    <%= f.password_field :password_confirmation %>
  </div>
  <div class="actions"><%= f.submit %></div>
<%end %>
Run Code Online (Sandbox Code Playgroud)

然后,当我将标记添加到相同的确切形式时,如下所示:

<form class="form-stacked">
<%= …
Run Code Online (Sandbox Code Playgroud)

html forms get ruby-on-rails ruby-on-rails-3.1

3
推荐指数
1
解决办法
1497
查看次数

亚马逊访问密钥显示在Carrierwave和Fog的URL中

我只是将我通过Carrierwave上传的图像存储到我的Rails 3.1应用程序中通过雾宝石使用亚马逊s3.在添加图像时,当我单击应用程序中的图像时,URL将提供我的访问密钥和签名.这是一个示例URL(XXX用信息替换了字符串):

https://s3.amazonaws.com/bucketname/uploads/photo/image/2/IMG_4842.jpg?AWSAccessKeyId=XXX&Signature=XXX%3D&Expires=1332093418
Run Code Online (Sandbox Code Playgroud)

这是在开发中发生的(localhost:3000)以及当我使用heroku进行生产时.这是我的上传者:

class ImageUploader < CarrierWave::Uploader::Base
 include CarrierWave::RMagick
 storage :fog
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
  process :convert => :jpg
  process :resize_to_limit => [640, 640] 
  version :thumb do
    process :convert => :jpg
    process :resize_to_fill => [280, 205]
  end
  version :avatar do
    process :convert => :jpg
    process :resize_to_fill => [120, 120]
  end
end
Run Code Online (Sandbox Code Playgroud)

我的config/initializers/fog.rb:

 CarrierWave.configure do |config| 
  config.fog_credentials = { 
     :provider               => 'AWS', 
     :aws_access_key_id      => 'XXX', 
     :aws_secret_access_key  => 'XXX',
   } 
  config.fog_directory  = 'bucketname' 
  config.fog_public     = false
end  
Run Code Online (Sandbox Code Playgroud)

有谁知道如何确保这些信息不可用?

更新:添加视图和控制器代码:来自users/show.html.erb中的部分代码:

<% if …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 carrierwave fog

3
推荐指数
1
解决办法
2950
查看次数