标签: form-for

Ruby on Rails:为什么"编辑"动作不起作用?

views/products/edit.html.erb我使用:

<%= form_for(:product, :url => {:action => 'update', :id => @product.id}) do |f| %>
Run Code Online (Sandbox Code Playgroud)

产生:

<form method="post" action="/aircons/8" accept-charset="UTF-8">
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

The action '8' could not be found for ProductsController
Run Code Online (Sandbox Code Playgroud)

尝试更新产品时id=8.

我认为表格的方法应该是put.是对的吗 ?我该怎么解决这个问题?


一些控制器代码:

def edit
  @product = Product.find(params[:id])
end

def update
  update_params_with_new_values(params)

  @product = Product.find(params[:id])

  if @product.update_attributes(params[:product])
    flash[:notice] = "Product updated successfully."
    redirect_to(:product => 'index')
  else
    render('edit')
  end
end

def update_params_with_new_values(params)
  params[:product][:shop_id] = Shop.create(:name => params[:new_shop]).id if params[:product][:shop_id] == "new_shop"
  params[:product][:brand_id] = Brand.create(:name => …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails form-for ruby-on-rails-3

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

Rails:form_for routes不会显示好的表单

我是Rails 3的新手,我坚持认为很容易解决的问题.我正在关注Head First:Rails中的示例,但得出他们正在使用rails 2的结论.

我做了一个像这样的html.erb文件:

<h1>New user</h1>
<% form_for(@user, :url=>{:action=>'create'}) do |f| %>
  <p>Fullname: <%= f.text_field :fullname%></p>
  <p>Username: <%= f.text_field :username%></p>
  <p>Email: <%= f.text_field :email%></p>
  <p>Password: <%= f.text_field :password%></p>
  <p><%= f.submit "Create" %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我想显示这个表单出现当我去http:// localhost:3000/users/new所以我添加了这样的路线:

resources :users
match "users/new" => "users#new"
match "users/create" => "users#create"
Run Code Online (Sandbox Code Playgroud)

当我去地址时,它显示的是一个带有H1标题的网页:新用户,但它没有显示任何其他内容.

我忘记了什么?

ruby ruby-on-rails form-for ruby-on-rails-3

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

Ruby On Rails form_for Checkbox太小了

我在格式化checkbox表单时遇到问题.

它目前在我的形式看起来非常小,我不知道如何使它更大.

代码如下:

<%= f.label :email %>   <%= f.email_field :email %>

<%= f.label :password %>   <%= f.password_field :password %>

<%= f.label :remember_me %>     <%= f.check_box :remember_me %>
Run Code Online (Sandbox Code Playgroud)

也许这是我可以用CSS解决的问题,但目前我的其他领域没有使用任何..

只是一些信息,我正在使用twitter bootstrap,所以任何解决方案都可以使用.

css ruby ruby-on-rails form-for twitter-bootstrap

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

form_for混合id和locale参数

我正在努力让Globalize3在我的应用上工作.我有博客文章的玩具项目,我想翻译.

我的网址看起来像这样: localhost/en/posts localhost/fr/posts

这就是我在我的工作中的表现 ApplicationController

before_action :set_locale

def set_locale
  I18n.locale = params[:locale] if params[:locale] || I18n.default_locale
end
Run Code Online (Sandbox Code Playgroud)

我用它form_for来创建和更新帖子.这是视图代码:

<%= form_for(@post) do |f| %>
...
<% end %>
Run Code Online (Sandbox Code Playgroud)

它在我进入/new页面时工作正常,这是控制器代码:

def new                                    
  @post = Post.new                         
end   

def create                                 
  @post = Post.new(post_params)            

  if @post.save                            
    redirect_to action: :show, id: @post.id
  else                                     
    render 'new'                           
  end                                      
end    
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用url编辑帖子时/en/posts/1/edit,它会混合传递给的文件form_for.这是错误信息:

没有路由匹配{:action =>"show",:controller =>"posts",:locale =>#,:id => nil,:format => nil}缺少必需的键:[:locale,:id]

我的问题是:它为什么这样做,我该如何修复thix?


我已经尝试过一些事情,例如将form_for声明更改为:

<%= form_for(@post, url: {action: 'show', id: @post, …

ruby ruby-on-rails form-for globalize3

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

form_for无法在rails中工作

我的form_for在我单独使用时起作用:

<h1>Contact Us</h1>
<%= @contact.errors.full_messages.join(', ') %>
<%= form_for @contact do |f| %>
  <p>
    <%= f.label :name %><br>
    <%= f.text_field :name %>
  </p>

  <p>
    <%= f.label :email %><br>
    <%= f.text_field :email %>
  </p>

  <p>
    <%= f.label :subject %><br>
    <%= f.text_field :subject %>
  </p>

  <p>
    <%= f.label :message %><br>
    <%= f.text_area :message %>
  </p>

  <p>
    <%= f.submit 'Submit Query', :class => 'submit-button btn btn-default' %>
  </p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用样式和所有内容将其添加到我的Web应用程序的其余部分时,它将停止工作:

<!-- scrollToTop -->
<!-- ================ -->
<div class="scrollToTop"><i class="icon-up-open-big"></i></div>

<!-- page …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionmailer form-for

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

Rails代码中没有路由匹配

这段代码全部基于Michael Hartl的Ruby on Rails教程.我创建了一个assigned在我的动作users_controller

def assign
  puts "in assign..."
  @scout = User.find(params[:follower_id])
  @der   = User.find(params[:followed_id])
end
Run Code Online (Sandbox Code Playgroud)

我意识到这目前没有做任何事情,但在_follow部分方面,我有

<%= form_for @user, url: { action: "assign" } do |f| %>
  <div><%= hidden_field_tag :follower_id, @user.id %></div>
  <%= f.label :followed_id, "Assign #{@user.name} to" %>
  <%= f.collection_select :following, @ders, :id, :name, prompt: true %>
  <%= f.submit "Assign", class: "btn btn-primary" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但是我收到了错误No route matches {:action=>"assign", :controller=>"users", :id=>"4"}.我是rails的新手,所以这可能只是一个愚蠢的问题.我究竟做错了什么?我需要修改我的routes.rb文件吗?另外,如果我尝试过<%= form_for @user do |f| …

ruby ruby-on-rails form-for collection-select

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

Rails:form_for安全漏洞?

我有一个用户模型:name和:is_admin属性.您不应该更改is_admin值.如果您编写的表单中任何用户都可以编辑其名称:

<%= form_for @user %>
    <%= f.label :given_name %>  
    <%= f.text_field :given_name %>
    <%= f.submit "Update"  %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

你在开辟安全漏洞吗?

亲切的问候,

security ruby-on-rails form-for

0
推荐指数
1
解决办法
43
查看次数

Rails:在form_for单选按钮上调用JS函数

我有一个带有单选按钮的form_for,我想在单选按钮更改时调用javascript函数.

单选按钮用于章节的字段'type',类型为boolean.

<%= form_for([book.category, book, chapter], remote: true ) do |f| %>

    <%= f.radio_button :type, true, onKeyUp: "alert('hi')", checked: 'checked' %> 
    <%= f.label :type, 'Link' %>

    <%= f.radio_button :type, false, onKeyUp: "alert('hi')" %> 
    <%= f.label :type, 'Text' %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

我也试过onchange和onclick.我尝试在选项之前添加一个{},我从Rails得到一个错误,即参数太多了.

最终我想调用一个隐藏/显示其他文本字段的函数,但我甚至无法获取执行警报!

我确信这是非常简单的事情,但我一直在网上搜索这个问题的答案太久了.谢谢你的帮助!

javascript ruby-on-rails form-for

0
推荐指数
1
解决办法
4312
查看次数