• #16 楼 @everett 恩,我看一下这个 gem,自己也写一个这样的类,谢谢!!! 另外,针对 15 楼出现的 params[user_course.id],这个并不能将值取出,相反的 user_course.id 是一个整数,需要将其转化为字符串,应该这样写 params[user_course.id.to_s],不能加双引号。 问题已经解决,再次谢谢大家的帮助,thank you very much !!!

  • #13 楼 @greenmoon55 我试了一下,用 update_all 不能将 id 去出来,只能一个一个的来取 id,如下面所示:

    UserCourse.all.each do |user_course|
      if !user_course.grade
        user_course.update_attribute(:grade, params[user_course.id])
      end
    end
    

    但是这样有一个问题,params[user_course.id] 不能够取出值并赋给 grade,不知道是怎么回事?

  • #11 楼 @everett 你的意思是不是用一个 button 按钮代替 submit,然后对该 button 写 javascript 函数,相当于吧 controller 中的函数放入 js 中来实现?

  • #5 楼 @karmue 我按照你的思路做了 这是 create 的函数

    def create
      data = Array.new
      params.keys().each do |key|
        if key.is_a?(Integer)
        else
          data[] = key
        end
        end
      user_courses = UserCourse.find(data)
      user_courses.each do |user_course|
        user_course.grade = params[user_course.id]
        user_course.save
      end
      redirect_to :action => "index", :controller => "select"
    end
    

    而 html 页面中,提取代码为 textarea id="comment" name="<%= user_course.id %>" value=<%= user_course.grade %>>"✓", "authenticity_token"=>"/9RSuxSpGdWxu2/PnCsxoK8CxtzUaXQWnIA/D5CsDbY=", "1"=>"85", "11"=>"58", "commit"=>"submit"}

  • #8 楼 @sylan401 textarea id="comment" name="user_course.id" value=<%= user_course.grade %>></textarea

  • #7 楼 @sylan401 不知道为什么这条没有了 >

  • #6 楼 @karmue mue 我是这样写的 <% @user_courses.each do |user_course| %>

    <%= user_course.course_name %> <%= user_course.user_name %> <% if user_course.grade %> <%= user_course.grade %> <% else %> > <% end %> <% end %> 浏览器把 user_course.id 当成了一个字符串变量,能不能把这句代码写完整啊,我还是不太明白。怎样取出的数字赋值给 key。我是用的 params[] hash,错误提示 Couldn't find all UserCourses with IDs (utf8, authenticity_token, user_course.id, commit, controller, action) (found 0 results, but was looking for 6). 另外,还有个问题,我的复制上贴吧的代码为什么这么不好看,有什么地方可以设置吗?
  • #3 楼 @karmue 我在页面里面使用了<%= text_area_tag 'hash[user_course.id]' %>,但是这样的话,hash 好像没有定义,到控制器里面也找不到,我试着在控制器里面定义 hash= Hash.new,好像也不对,因该是因为变量有限制范围吧。

  • #1 楼 @karmue 这个方法我知道,我说的是取出多个 text 中的数据,依次更新每条记录的属性,而保证不会出错。

  • 估计楼主是要模型 A 实现增查改删功能,而 B 控制器用于改变 A 中的某些属性,如果要简单的话,模型 A 直接用 scoffold,控制器 B 改一改就好了

  • 找不到对应的 params [:id] at 2013年06月19日

    #13 楼 @karmue 好了,thank you!!!我是要试一试 nested,呵呵

  • 找不到对应的 params [:id] at 2013年06月19日

    #11 楼 @karmue 那个也不行,按理来说应该可以的,我的 select 控制器中的 new 方法 def new @course = Course.find(params[:id]) @student_course = StudentCourse.new @student_course.course_id = @course.id @student_course.student_id = current_user.id if @student_course.save redirect_to :action => "index", :controller => "courses" else redirect_to :action => "index", :controller => "select" end end 如果采用<%= link_to '选择', '/select/new?id=#{@course.id}' %>,在当前页面可以显示,但是点击选择之后,会提示:Couldn't find Course with id= ,网页错误。 采用第二种形式连此网页都不能显示,提示有错误: Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id

  • 找不到对应的 params [:id] at 2013年06月18日

    #8 楼 @ZombieCoder 手动把 course_id 当成参数传过去,这句话我不是很懂,能解释一下吗。是用 debugger 来做吗,鼠标停在连接的地方,我一般是用的浏览器来查看具体生成的 html 代码,看 guides 里面的 form 参数也是用 params[:XXX]来查看的,好像也没有错。

  • 找不到对应的 params [:id] at 2013年06月18日

    #6 楼 @mingyuan0715 你好,前两天有点事情去了,现在发我的路由 Pictures::Application.routes.draw do get "select/grade" get "select/destroy" get "select/index" get "select/new" get "select/show"

    resources :notices

    resources :labs

    get "new_experiment/index" get "new_experiment/show"

    resources :majors resources :colleges mount Ckeditor::Engine => '/ckeditor'

    resources :sessions, only: [:new, :create, :destroy]

    resources :news resources :users resources :courses

    get "login/index" get "login/login" get "login/news" get "login/show" get "login/download" get "login/download1" get "login/center_introduce" get "login/center_special" get "login/center_teachers" get "login/courses_index" get "login/courses_query"

    get "login/student"

    match '/signup', to: 'users#new' match '/signin', to: 'sessions#new' match '/signout', to: 'sessions#destroy', via: :delete

    root :to => 'login#index'

    match ':controller(/:action(/:id))(.:format)' end

  • 找不到对应的 params [:id] at 2013年06月14日

    #2 楼 @blacktulip new 方法是我自己随意定的,可以改一改名字,但是还是会报错

  • 找不到对应的 params [:id] at 2013年06月14日

    #1 楼 @mingyuan0715 我不是用的 resourse 路由,而是用的 get 方法,方法可以随意定,此控制器没有绑定 resourses

  • 找不到对应的 params [:id] at 2013年06月14日

    其实我是想做一个关系数据库,建立了三个表,student,student_course,course,其中我想对 student_course 进行操作,使 student 和 course 联系起来,因此必须使用两者的 id,通过查询课程,我想讲 course_id 取下来,放入 student_course 的 course_id 中,代码可能有点乱,但大概思路就是这样。